andygello555 / sttp

A HTTP client that is also a scripting language/test framework. Can be used as an external framework for testing Web APIs as well as a tool for scraping static web pages.
GNU General Public License v3.0
2 stars 0 forks source link

Implemented a new (and hopefully more optimal) Batch statement #1

Closed andygello555 closed 2 years ago

andygello555 commented 2 years ago

This new batch statement will start its workers before executing the first pass. The interpreter will then enqueue each MethodCall it finds in the first pass as a unit of work for the worker pool to execute.

Whenever a worker produces a result it will be enqueued in the result queue. Results in this queue are then consumed by a consumer that pushes each result onto the Results heap (heap.Interface).

Once the first pass has completed the interpreter is blocked until the BatchSuite has executed all of its work. After this the execution is similar to the old batch statement.

From inital benchmarking this implementation is around 50% faster overall than the old batch statement implementation. More testing needs to be done, however...