BLOGS

PERFORMANCE

warning: file_get_contents(http://www.telize.com/geoip/54.81.131.189) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/www.4d.com/docs/includes/common.inc(1762) : eval()'d code on line 4.

Hardware graphic acceleration

As of 4D v13, get boosted graphics rendering capabilities.

4D uses core OS technologies (CoreGraphics and Direct2D) for all its drawing, automatically taking full advantage of hardware acceleration when available, like in forms, images or rendering structures.

 

Next generation HTTP server

The multithreaded server is much more than a means of serving up Web pages.

It has long served as one of many ways of making your application data available to others, and as of 4D v13 it has been further modernized to bring more capabilities to developers and users alike:

  • Full Web standards support
  • Improved cache management
  • Native GZIP support, with automatic and programmatic compression
  • A new fully-threaded architecture designed for higher scalability

 

Session handling

Sequential sorting under 64-bit

The 64-bit environment and its benefits for sequential sorting

To demonstrate scalability's effect on performance, we compared the time it takes to perform a sequential sort using the 32- and then the 64-bit versions of 4D Server v12. A sort needs memory to store the temporary data used in comparisons. 4D Server does not use the cache for this kind of operation; it allocates the memory in the “engine memory” (any part of the virtual memory 4D Server can allocate outside the cache). We set the size of the cache to the same value in both environments.

Queries under 4D Server v12 64-bit

Increasing cache size to speed up queries

Usually, scalability is not about speed. Being able to allocate more memory does not mean that an application will run faster, but that it will support a heavier load. However, there are situations where an operation will run faster just because 4D Server could use more RAM. A typical example is the cache size. The 32-bit version can allocate a maximum 2.3 GB of cache. (The remainder is used for the engine: handling connections, processes, users, code, etc.) There are no limits with the 64-bit version, which means it is now possible to fill the cache with all the data (and indexes).