Tag: 泊坞员注册表

C ++中是否有64位整数的“标准”htonl函数?

我正在研究memcache协议的实现,在某些情况下,它使用64位整数值。 这些值必须以“networking字节顺序”存储。 我希望有一些uint64_t htonll(uint64_t value)函数来进行更改,但不幸的是,如果存在,我找不到它。 所以我有1或2个问题: 有没有任何便携式 (Windows,Linux,AIX)标准function来做到这一点? 如果没有这样的function,你会怎么实现呢? 我想到了一个基本的实现,但我不知道如何在编译时检查字节序以使代码可移植。 所以你的帮助是在这里比欢迎;) 谢谢。 这是我写的最后的解决scheme,感谢Brian的解决scheme。 uint64_t htonll(uint64_t value) { // The answer is 42 static const int num = 42; // Check the endianness if (*reinterpret_cast<const char*>(&num) == num) { const uint32_t high_part = htonl(static_cast<uint32_t>(value >> 32)); const uint32_t low_part = htonl(static_cast<uint32_t>(value & 0xFFFFFFFFLL)); return (static_cast<uint64_t>(low_part) << […]

在32位系统上使用int64_t而不是int32_t会有什么样的性能影响?

我们的C ++库目前使用time_t来存储时间值。 在某些地方,我开始需要亚秒级精度,所以无论如何需要更大的数据types。 另外,在某些地方解决2038年问题也许是有用的。 所以我正在考虑完全切换到一个具有底层int64_t值的单个Time类,以取代所有地方的time_t值。 现在我想知道在32位操作系统或32位CPU上运行此代码时,这种更改对性能的影响。 IIUC编译器将生成使用32位寄存器执行64位算术的代码。 但是如果速度太慢,我可能不得不采用更加差异化的方式来处理时间值,这可能会使软件更难以维护。 我感兴趣的是: 哪些因素影响这些操作的性能? 可能是编译器和编译器的版本; 但操作系统或CPU制造商/型号是否也影响了这一点? 一个普通的32位系统将使用现代CPU的64位寄存器吗? 哪些操作在32位模拟时特别慢? 还是哪个几乎没有放缓? 在32位系统上使用int64_t / uint64_t是否有任何现有的基准testing结果? 有没有人有这种性能影响的自己的经验? 我主要对Intel Core 2系统上Linux 2.6(RHEL5,RHEL6)上的g ++ 4.1和4.4感兴趣; 但是也能很好地了解其他系统的情况(如Sparc Solaris + Solaris CC,Windows + MSVC)。

在Visual Studio 2008中进行debugging时,“不允许对64位应用程序进行更改”

我正在使用Visual Studio 2008,C#。 我尝试使用编辑和继续(在debugging时编辑代码),并得到这个exception: “不允许对64位应用程序进行更改” 这是为什么? 有没有解决方法?

从Cygwin 32bit切换到Cygwin 64bit是否明智?

我一直在使用Cygwin (很长一段时间)。 具体来说,我在Win7上使用它(包括gcc / g ++)进行开发工作。 我刚刚注意到现在存在一个64位版本 。 我没有具体的需要,我需要转换到64位,但我想知道是否要这样做。 这是可取的吗? 优缺点都有什么? 在转换过程中是否存在过度的问题?

如何判断我的应用程序是作为32位还是64位应用程序运行的?

如何判断我的应用程序(在Visual Studio 2008中编译为“ 任何CPU” )是作为32位还是64位应用程序运行的?

在“任何CPU”.NET程序集上强制执行x86 CLR

在.NET中,“平台目标:任何CPU”编译器选项允许.NET程序集在x64机器上以64位运行,在x86机器上以32位运行。 也可以使用“Platform Target:x86”编译器选项强制程序集在x64机器上作为x86运行。 是否有可能使用“任何CPU”标志运行程序集,但确定它是否应该在x86或x64 CLR中运行? 正常情况下,这个决定是由CLR / OS Loader(根据我的理解)根据底层系统的位数来做出的。 我正在尝试编写一个C#.NET应用程序,它可以与其他正在运行的进程交互(读入:注入代码)。 x64进程只能注入到其他x64进程中,并且与x86一样。 理想情况下,我想利用JIT编译和Any CPU选项来允许单个应用程序用于注入x64或x86进程(在x64机器上)。 这个想法是,应用程序将被编译为任何CPU 。 在x64机器上,它将以x64运行。 如果目标进程是x86,则应该重新启动自己,强制CLR将其作为x86运行。 这可能吗?

64位程序比32位版本更大更快吗?

我想我是专注于x86,但我一般感兴趣的是从32位到64位。 从逻辑上讲,我可以看到常量和指针在某些情况下会更大,所以程序可能会更大。 而为了效率而分配字边界的内存意味着分配之间会有更多的空白。 我也听说x86上的32位模式必须在由于可能的4G地址空间重叠而发生上下文切换时刷新其caching。 那么,64位的真正好处是什么呢? 作为一个补充问题,128位会更好吗? 编辑: 我刚刚写了我的第一个32/64位程序。 它使16字节(32b版本)或32字节(64b版本)对象链表/树,并做了很多印刷stderr – 不是一个真正有用的程序,而不是典型的,但这是我的第一个。 大小:81128(32b)v 83672(64b) – 所以没有太大的区别 速度:17s(32b)v 24s(64b) – 运行在32位操作系统(OS-X 10.5.8) 更新: 我注意到一个新的混合型x32 ABI(应用程序二进制接口)正在开发,它是64b,但使用32b指针。 对于一些testing,它会比32b或64b更小的代码和更快的执行速度。 https://sites.google.com/site/x32abi/

确定当前的PowerShell Process是32位还是64位?

在x64位操作系统平台上运行PowerShell脚本时,如何在脚本中确定运行脚本的PowerShell版本(32位或64位)? 背景 默认情况下,32位和64位版本的PowerShell都安装在64位平台(如Windows Server 2008)上。这可能会导致运行PowerShell脚本时遇到困难,而脚本必须针对特定体系结构(即使用64位对于SharePoint 2010的脚本,为了使用64位库)。 相关问题: 针对PowerShell的x64与x86变异编程的最佳方法是什么? 这个问题涉及针对32位和64位体系结构运行的代码。 我的问题处理的情况下,当你想确保脚本只运行在正确的版本。

如何在64位Windows上安装SciPy?

我如何在我的系统上安装SciPy? 对于NumPy部分(SciPy依赖于),实际上是64位Windows的安装程序: numpy-1.3.0.win-amd64-py2.6.msi (是直接下载URL,2310144字节)。 运行SciPy超级包安装程序会在对话框中显示以下消息: 无法安装。 需要Python版本2.6,这在registry中找不到。 我已经安装了Python 2.6.2(并在其中安装了一个可用的Django安装),但我不知道任何registry故事。 registry项似乎已经存在: REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Python] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help\Main Python Documentation] @="D:\\Python262\\Doc\\python262.chm" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath] @="D:\\Python262\\" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup] @="Python 2.6" [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Modules] [HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\PythonPath] @="D:\\Python262\\Lib;D:\\Python262\\DLLs;D:\\Python262\\Lib\\lib-tk" 我到目前为止所做的: 步骤1 下载了NumPy superpack安装程序numpy-1.3.0rc2-win32-superpack-python2.6.exe( 直接下载URL ,4782592字节)。 运行这个安装程序会产生相同的信息:“无法安装,需要Python 2.6,这在registry中找不到。” 更新 :实际上NumPy的安装程序是有效的 – 请参阅问题的开头部分。 第2步 试图以另一种方式安装NumPy。 下载压缩包numpy-1.3.0rc2.zip( 直接下载url ,2404011字节),以正常的方式解压到一个临时目录D:\ temp7 \ numpy-1.3.0rc2(其中setup.py和README .txt是)。 然后我打开了一个命令行窗口,并且: d: cd D:\temp7\numpy-1.3.0rc2 setup.py install 这跑了很长时间,还包括使用cl.exe(Visual […]

一个简单的“Hello World”需要64位机器上的10G虚拟内存与32位上的1G虚拟内存?

在我们的生产机器上运行一个简单的Java程序,我注意到这个程序吃了更多的10G virt。 我知道虚拟内存是不相关的,但至less我想明白为什么这是必要的。 public class Main { public static void main(String[] args) { System.out.println("Hello World!"); try { Thread.sleep(10000); } catch(InterruptedException e) { /* ignored */ } } } 下面是什么当我运行这个小程序时说的: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 18764 myuser 20 0 10.2g 20m 8128 S 1.7 0.1 0:00.05 java 有谁知道这是为什么发生? uname […]