On Tuesday, 4 November, 2014 12:35, jose isaias cabrera <[email protected]> asked:
>I have an application that is written for x32 machines. However, we now >have a few machines that are x64 and all is well when we are using the >precompiled x32 DLLs provided by http://www.sqlite.org/download.html. >Changing the x32 DLLs to x64 DLLs, will it show any difference in speed >on the x64 machines? Thanks. You did not specify the Operating System. Very Few Operating Systems support intra-process thunking between x86 and x64 code segments. This means that in order to use the x64 load library, your entire application will have to be re-compiled as x64. Since you refer specifically to DLLs, one would assume you are speaking of Windows as the Operating System. Assuming that you do rebuild the entire application as 64-bit, it will consume at least twice the amount of memory as the x86 version and run slower in user code. Calling into kernel space will be slightly quicker because the x64 kernel space is a DCSS (like the x86 kernel) which can be called directly, versus using the system trampoline and thunk code used to run x86 applications under an x64 version of Windows. The application and operating system (and its services) will be open to kernel mode code injection exploits when running x64 applications, just like x86 applications on x86 kernels are open to such exploits, because the kernel is mapped into the process address space. Such injection exploits against x64 kernel code and processes being impossible from an x86 process. Unless there is a specific reason for converting the entire application to x64 (such as a requirement to access more than 3.9 GB of per-process memory) or to take advantage of other specific architectural differences (which are almost all entirely dependent on the compiler you choose) there is no advantage to x64 applications over x86 applications on an x64 Operating System. In truth, there may be significant reasons why it is preferred to keep an x86 userland, especially on Windows. --- Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. Sometimes theory and practice are combined: nothing works and no one knows why. _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

