int在32/64位系统中的字节数

 

64-bit data models
Data model short (integer) int long (integer) long long pointers,
size_t
Sample operating systems
SILP64 64 64 64 64 64 Classic UNICOS[41] (versus UNICOS/mp, etc.)
ILP64 16 64 64 64 64 HAL Computer Systems port of Solaris to the SPARC64
LLP64,
IL32P64
16 32 32 64 64 Microsoft Windows (x86-64 and IA-64) using Visual C++; and MinGW
LP64,
I32LP64
16 32 64 64 64 Most Unix and Unix-like systems, e.g., Solaris, Linux, BSD, macOS. Windows when using Cygwin; z/OS

参考链接


32位和64位系统区别及int字节数
64-Bit Programming Models: Why LP64?
64-bit computing
What decides the sizeof an integer?

ubuntu 16.04如何修改gnome-terminal标题栏内容

最近在使用ubuntu 16.04上使用多个gnome-terminal执行脚本的时候,标题栏上显示的都是"终端"这两个字,导致无法区分是哪个脚本的控制台输出。

我们是使用如下的方式要求gnome-terminal启动并执行我们指定的Shell

为了修改标题,可以在我们需要执行的run.sh中增加如下命令:

具体的标题内容请替换其中的"SOME TITLE HERE"为需要的内容即可。

参考链接


How to change Gnome-Terminal title?

解决WordPress更新提示无法连接到FTP服务器

最近WordPress更新到最新版本之后,更新插件的时候提示如下图所示的错误信息(以前一直使用FTPS更新插件):

观察系统日志,没有发现异常,倒是登陆认证日志出现异常

出现如下内容:

解决方法如下:
WordPress目录下找到wp-config.php文件并编辑,在最后一行加上:

貌似这样操作之后,效率快了很多的样子。

参考链接


在Windows 10使用Microsoft Fix it处理无法卸载的应用

如果Window 7下发生软件无法卸载的情况,可以参考解决Win7“无法访问Windows Installer服务。Windows Installer没有正确安装时可能发生这种情况...”来处理。

如果Window 10下发生软件无法卸载的情况,可以访问How to use Microsoft easy fix solutions 来寻找解决方案。

如果微软官网已经无法下载,可以从本站下载一个备用:
MicrosoftProgram_Install_and_Uninstall.meta.diagcab

参考链接


在指定的页面中阻止WordPress插入额外换行

众所周知WordPress会对编辑器里的内容再格式化一遍,比如自动分段。但有些时候这些添加的格式反而也会让人很头疼。最近遇到WordPressinput,select,pre前会插入额外的换行即<br>,从而破坏页面样式的问题。

继续阅读在指定的页面中阻止WordPress插入额外换行

内存带宽简单介绍

内存,作为影响现代计算机性能至关重要的部件,最重要的指标有两个,分别是容量和带宽,而容量一般都很好理解,比如1G、2G,这也是大多数人对内存的最直观认识。更多关于内存的相关知识介绍,网上有一篇很好的文章“千丝万缕的联系 DDR1-3和GDDR1-5全解析”,所以这里也不打算多讲理论,还是来点更工程性的东西,或者说更实际点的。

以“KVR1333D3N9/2G”为例,这就包含有几个信息:产商为金士顿(KVR)、等效频率为1333MHz、传输类型为DDR3(D3)、容量2G。SDR内存和DDR内存的数据总线位宽都为64bit,所以等效频率为1333的内存带宽为1333MHz*64bit/8=10.664GB/s(注意:这里的G等于1000*1000*1000,而非1024*1024*1024)。这个公式应该很好理解:也就是一次传输64bit,一秒传输1333M次,所以一秒的总传输量(也就是带宽)就等于1333M*64。

对于双通道或三通道,可以简单的类比理解为,以前单通道是一根管子(内存控制器)放水,而双通道或三通道是两根或三根管子放水,所以放水量(内存带宽)成倍增长,当然这需要机器(以前是需要主板支持,更具体点是北桥芯片,但在Nehalem架构集成内存控制器后,就需要CPU来支持)对双通道或三通道的支持(即主板或cpu有两个或三个内存控制器,并且各个内存控制器相互独立工作),那么相应的,系统总内存带宽就能达到10.664GB/s*2=21.328GB/s或10.664GB/s*3=31.992GB/s。

32GB/s是1333内存三通道情况下的理论带宽,而实际带宽还与其它东西相关联,比如Intel Xeon E5504 CPU,虽然支持三通道,但其支持的最高频内存只是DDR3 800,所以即便是在Xeon E5504的机器上安装DDR3 1333的内存也并没有什么益处,因为DDR3 1333会被自动降频到800来使用,所能达到的最大内存带宽也就只有19.2GB/s。

将上面信息对照链接http://www3.intel.com/cd/channel/reseller/asmo-na/eng/products/server/processors/5500/feature/410125.htm中的表格:

Usage Workloads Memory Frequency Max B/W Recommended # of DIMMs per Channel Max DIMMs2 Max Capacity3
Maximum bandwidth HPC 1333 MHz 32 GB/s 1 6 48GB
General purpose Various apps 1066 MHz 25.5 GB/s 2 12 96GB
Maximum capacity Virtualized platforms 800 MHz 19.2 GB/s 2 QRO RDIMM 16GB 12 192GB
3 SR/DR RDIMM 8GB 18 144GB

可以看到匹配在800 MHz(Memory Frequency)/12(Max DIMMs)/192GB(Max Capacity)这一行,也即当前内存工作频率为800MHz。另外,对照Xeon E5504 CPU的Intel官方内存规格说明:

Memory Specifications
Max Memory Size (dependent on memory type)
144 GB
Memory Types
DDR3 800
# of Memory Channels
3
Max Memory Bandwidth
19.2 GB/s
Physical Address Extensions
40-bit
ECC Memory Supported
Yes

虽然最大内存容量标注为144GB,但其括号内已注明这个依赖于内存类型,而且144GB也是800MHz所对应的内存最大容量,所以并没有问题;支持三通道;最大带宽为19.2 GB/s;支持ECC内存校验。

另外的,Linux下可利用如下命令查看内存安插的情况,几个重要字段分别为:Data Width: 64 bits(数据总线位宽)、Size: 1024 MB(插槽上的内存容量为1G)、Speed: 1333 MHz (0.8 ns)(等效频率为1333MHz):

参考链接


内存带宽简单介绍

ubuntu 16.04(x64)编译LimeSDR v1.4的USB固件

最近在捣鼓LimeSDR,如果只使用USB供电的话,默认USB固件只向系统声明了400MA的电流。

明显当设备全功率运行的话,是不够设备使用的,全功率大约是3W以上的样子,因此,我们需要调整USB固件,向系统多申请些电流。

USB 3.0可以提供900MA的电流。

下面是如何编译LimeSDRUSB固件:

继续阅读ubuntu 16.04(x64)编译LimeSDR v1.4的USB固件