32-bit

memcpy performance differences between 32 and 64 bit processes

烂漫一生 提交于 2019-11-28 21:43:13
We have Core2 machines (Dell T5400) with XP64. We observe that when running 32-bit processes, the performance of memcpy is on the order of 1.2GByte/s; however memcpy in a 64-bit process achieves about 2.2GByte/s (or 2.4GByte/s with the Intel compiler CRT's memcpy). While the initial reaction might be to just explain this away as due to the wider registers available in 64-bit code, we observe that our own memcpy-like SSE assembly code (which should be using 128-bit wide load-stores regardless of 32/64-bitness of the process) demonstrates similar upper limits on the copy bandwidth it achieves.

What are the lower level advantages and disadvantages of 64-bit/32-bit?

白昼怎懂夜的黑 提交于 2019-11-28 21:38:43
I'm sure we've all heard the terms 64bit and 32bit thrown around, but what do they actually mean? I'm pretty sure they have to do with the size of a memory address. On a 64bit machine, a reference to an object is 64 bits. But I want to dig a little deeper.... One often hears the phrase "64bit machine." What part of the computer is actually geared toward the number of bits? Processor? Operating System? What is the advantage of having larger memory addresses? I could add more questions, but I think brief is better. Thanks guys :D b w 64 bit refers to the width of registers, memory addressing

How do I compile and link a 32-bit Windows executable using mingw-w64

烈酒焚心 提交于 2019-11-28 19:10:07
问题 I am using Ubuntu 13.04 and installed mingw-w64 using apt-get install mingw-w64 . I can compile and link a working 64-bit version of my program with the following command: x86_64-w64-mingw32-g++ code.cpp -o app.exe Which generates a 64-bit app.exe file. What binary or command line flags do I use to generate a 32-bit version of app.exe? 回答1: That depends on which variant of toolchain you're currently using. Both DWARF and SEH variants (which come starting from GCC 4.8.0) are only single-target

How to increase intellij 32bit xmx more than 1GB?

帅比萌擦擦* 提交于 2019-11-28 18:46:04
I am using 32bit Intellij on my 32bit windows XP with 4 GB of RAM. I am attempting to increase intellij xmx to 1.5GB : -Xmx1500m So I know JVM support 1.5GB of RAM in 32bit systems. But this error throws from JVM : The JVM could not be started. The maximum heap size (-Xmx) might be too large ... I can't increase intellij Xmx more than 900MB Please help me! You can't do it as JVM needs to allocate all the heap in a single continuous chunk, which may not be possible because of the memory fragmentation. See my FAQ article for more details. See also this picture: As you can notice, total process

What is the best 32bit hash function for short strings (tag names)?

自作多情 提交于 2019-11-28 16:20:31
What is the best 32bit hash function for relatively short strings? Strings are tag names that consist of English letters, numbers, spaces and some additional characters ( # , $ , . , ...). For example: Unit testing , C# 2.0 . I am looking for 'best' as in 'minimal collisions', performance is not important for my goals. If performance isn't important, simply take a secure hash such as MD5 or SHA1, and truncate its output to 32 bits. This will give you a distribution of hash codes that's indistinguishable from random. I'm not sure if it's the best choice, but here is a hash function for strings:

What is the difference between a 32-bit and 64-bit processor?

时光怂恿深爱的人放手 提交于 2019-11-28 15:06:00
问题 I have been trying to read up on 32-bit and 64-bit processors (http://en.wikipedia.org/wiki/32-bit_processing). My understanding is that a 32-bit processor (like x86) has registers 32-bits wide. I'm not sure what that means. So it has special "memory spaces" that can store integer values up to 2^32? I don't want to sound stupid, but I have no idea about processors. I'm assuming 64-bits is, in general, better than 32-bits. Although my computer now (one year old, Win 7, Intel Atom) has a 32-bit

How can I enable my 32-bit Delphi application to use 4gb of memory on 64-bit windows (via Wow64.exe)?

我只是一个虾纸丫 提交于 2019-11-28 09:59:49
According to this MSDN page : WOW64 enables 32-bit applications to take advantage of the 64-bit kernel. Therefore, 32-bit applications can use a larger number of kernel handles and window handles. However, 32-bit applications may not be able to create as many threads under WOW64 as they can when running natively on x86-based systems because WOW64 allocates an additional 64-bit stack (usually 512 KB) for each thread. In addition, some amount of address space is reserved for WOW64 itself and the data structures it uses. The amount reserved depends on the processor; more is reserved on the Intel

x86_64 Assembly Linux System Call Confusion

早过忘川 提交于 2019-11-28 08:25:37
I am currently learning Assembly language on Linux. I have been using the book 'Programming From the Ground Up' and all the examples are 32-bit. My OS is 64-bit and I have been trying to do all the examples in 64-bit. I am having trouble however: .section .data .section .text .global _start _start: movq $60, %rax movq $2, %rbx int $0x80 This merely just calls the Linux exit System call or it should. Instead it causes a SEG FAULT and when I instead do this .section .data .section .text .global _start _start: movq $1, %rax movq $2, %rbx int $0x80 it works. Clearly the problem is the value I move

Is there any way to execute 64-bit programs on a 32-bit computer?

我的未来我决定 提交于 2019-11-28 07:34:58
问题 Just a simple question: Is there any way to run a program compiled under a 64 bit Windows environment (with mingw64) on a 32 bit machine? Any DLL or any compatibility layer which I can use? 回答1: If you are talking about a 32-bit processor, then no. But if you are running a 32-bit OS on 64-bit hardware, then you can do it with VMWare. A 64-bit guest can run on a 32-bit host, if the hardware supports it. 回答2: Bochs should do the trick, but you'd need another copy of Windows to run in the

How do I force a 32-bit build of Boost with GCC?

安稳与你 提交于 2019-11-28 07:28:40
How do I force a 32-bit build of Boost with GCC? Currently attempting by putting this line in my user-config.jam , but it does not work: using gcc : 4.1.2 : g++ : compileflags="-m32" ; If you are using C++ Boost 1.40, use: bjam address-model=32 If you are using eariler version, consider upgrading. If you cannot, use bjam address-model=32 architecture=x86 I also recommend that you take a look at the fine manual Andrew Meadows This answer helped me toward a solution that worked for me. I was trying to compile a 32-bits version of boost_1_43_0 on 64-bits debian and eventually came up with this: .