-
What's is the main reasons to use TCL? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
This is a frequent question and there is an overview of the concepts and architecture here https://www.hammerdb.com/blog/2018/11/. There are multiple reasons for using TCL such as being 100% open source, lightweight, extensible with C, the same native code on Linux and Windows, in-built graphical environment, minimal dependencies and high performance with very low system CPU utilization - however the #1 reason for using TCL is the threading model and this article referenced in the link explains why: https://dzone.com/articles/threads-done-right-with-tcl For a benchmarking/load testing tool you need to create "Virtual Users" these virtual users need to be OS threads (otherwise) it would be too resource heavy) and they need to scale. Only the TCL threading model has the unique attributes to enable HammerDB to drive database servers to 100% CPU utilization with minimal client overhead meaning we are testing the database and not the client as all virtual users can run on multi-core systems independently. Above everything else remember the key goal here is to drive a load against the database in a repeatable way so running the same test with the same environment achieves the same result every time. |
Beta Was this translation helpful? Give feedback.
-
For future reference a link is here showing the single threaded performance of TCL vs Python https://wiki.tcl-lang.org/page/Comparing+Tcl+and+Python. Also to highlight as in the concepts post that all of the database interfaces are written in C to access the databases using their native APIs. The key goal of HammerDB is multithreaded performance to test a database without the client being a bottleneck and TCL is used for HammerDB as the TCL threading model satisfies these requirements. |
Beta Was this translation helpful? Give feedback.
This is a frequent question and there is an overview of the concepts and architecture here https://www.hammerdb.com/blog/2018/11/.
There are multiple reasons for using TCL such as being 100% open source, lightweight, extensible with C, the same native code on Linux and Windows, in-built graphical environment, minimal dependencies and high performance with very low system CPU utilization - however the #1 reason for using TCL is the threading model and this article referenced in the link explains why: https://dzone.com/articles/threads-done-right-with-tcl
For a benchmarking/load testing tool you need to create "Virtual Users" these virtual users need to be OS threads (otherwise) it would be…