Closed AlistaiReid closed 7 years ago
This is pure speculation since I haven't profiled the code:
all good points =) I believe the worker time prediction is done on job type and worker at the moment-- but could well be wrong about that. This unnecessary dynamic allocation is a big thing we should fix soon.
We should do #32 first so we can measure the performance improvements.
Also, an old idea was to use something like protobuf/flatbuffers to remove most of the serialisation code and make it easier to communicate with other languages. However, most of these serialisation libaries have fancy features like backwards-compatibility which we don't really need ATM. So we may incur an unwanted performance overhead.
EDIT: We could go for a compromise, where the client facing communications are done in protobuf but the internal server communications is done with raw text.
Using binary protocol for the entire system. Using both is slow because we have to convert between protobuf and binary.
More than 50% of the profiled run-time of stateline-server is string packing and unpacking.
This will require changes to: