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

Reply via email to