Coexistence of thread-safe and non-thread-safe commands
Have you ever needed to use methods with both thread-safe and not thread-safe calls, with conditions that skip over commands that are not thread-safe? Currently the compiler prevents doing this and an error is thrown, however there’s a flag that lets you disable this check and this blog post shows you how.
Concurrent merged clients from the same computer
You asked for a way to run multiple clients on the same computer AND simultaneously connect them to the same 4D Server. We not only heard you, we’re giving you even more with 4D v17 R5! Each connection now includes a separated cache folder containing the connection’s IP address, port, and a hash code. Thanks to this, you can now also connect several clients from the same machine to multiple servers on different machines. There’s no configuration necessary, just launch and watch it work!
Improved performance: up to 8xs faster (no, that’s not a typo)!
Scalability is one of our primary concerns and 4D v17 R5 brings good news in this area, particularly for those with a heavy process load on their 4D Server. You’ll notice significant improved performance speeds when remote clients (one, two, or even hundreds) are connected to your server.
4D’s internal architecture has been enhanced and now processor usage is fully optimizedopens in a new tab) in preemptive mode and simultaneous read/write accesses on the same table. As a result, you could see performance 4 to 8xs faster!
64-bit support brings new opportunities
Without sugarcoating it, 4D v17 R5 is 64-bit only! It’s no secret that many features, such as preemptive processes, new cache manager, 4D View Pro, and more are already only available in 64-bit. The bright side is that focusing on 64-bit systems makes it possible for us to incorporate more modern technologies and feature sets, as well as update many libraries. This change also brings new opportunities and in this blog post we’ll focus on the updated libraries and the positive impact on your 4D applications.
More thread-safe commands at your disposal
4D lets you take full advantage of multi-core computers with preemptive processes. In a previous blog post, we’ve provided you with a list of enhanced commands that can be used in preemptive processes, enabling faster global execution time and more connected users. And in response to your feedback, we increased the list with even more commands.
Make your solutions scalable with preemptive multi-threading – Add K. from 4D Summit 2018
Preemptive processes are powerful since they allow your applications to take full advantage of multi-core computers; consequently, this results in faster global execution time and more connected users. With 4D v17, we went a step further by providing you 1,000+ thread-safe commands!
Watch the Preemptive multi-threading video from the 4D Summit 2018 Keynote. It features Add Komoncharoensiri, Director of Technical Services (4D USA), explaining how the preemptive support in 4D helps you take advantage of your multi-core machines, as well as the new concepts we shipped along the way to help you boost performance and efficiency.
Preemptive Web Services Server and Client
Preemptive Web Services allow your applications to take full advantage of multi-core computers resulting in faster responses for simultaneous requests. It’s not only powerful, it’s also easy: from the Method Properties of any method, just select the “Can be run in preemptive processes” option and you’re off and running!
A 4D method can be preemptive or not according to compilation options and the use of the language, as explained in this post.
More commands to run in preemptive processes
A preemptive process is powerful as it allows your application to take full advantage of multi-core computers; consequently, its results in a faster global execution time and more connected users. A 4D process may be preemptive or not according to compilation options and the use of the language, as explained in this post.
In order to benefit from this mode as much as possible we are pleased to announce that more than twenty existing commands have been enhanced and can now be used inside preemptive processes.
4D Summit 2016: Laurent Esnault presents workers and UI in preemptive mode
Our own VP of Engineering, Laurent Esnault, explains exchanging information between multiple processes AND between processes and forms during his Break Out Session: Preemptive Multi-threading at 4D Summit 2016. Thanks to preemptive multi-threading, you can have more parallel processes, and thus add more and more users, for either desktop or web applications.
If you missed Laurent’s session at 4D Summit 2016, watch this 15-min video and enjoy some personal training by the master of preemptive multi-threading!
Difference between cooperative and preemptive explained by Laurent Esnault at 4D Summit 2016
Laurent Esnault, VP of Engineering, explains the difference between cooperative and preemptive processes during his Break Out Session about Preemptive Multi-threading at 4D Summit 2016. Thanks to Preemptive Multi-threading, you can have more parallel processes, and thus add more and more users, either for desktop or for web applications.
If you missed Laurent’s session at 4D Summit 2016, watch this video and enjoy some personal training by the master of preemptive multi-threading!
Contact us
Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!
* Your privacy is very important to us. Please click here to view our Policy