|
|
|
|
|
by anotherangrydev
3952 days ago
|
|
Ok, try testing with packets of around 128-1024 bytes. A 'good' result for an i5-i7 core is to get at least 10k requests per second on that situation. You are gonna live or die by this measure dude, so work on improving it. You are around 100x far from it but if you're lucky you can get there with 'just' two 10x improvements. I suggest you to look into Flame Graphs [1], they are awesome. I have used them to pinpoint exactly where are the 10-100x bottlenecks on my code and unclog them. Also, about your website, just make it sound less like an infomercial and you'll be fine. And last but not least, best of luck! [1] http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html |
|
I should have mentioned, it is currently limited to one core, due to python. I will make it multicore probably before 1.0. It will be relatively easy to do with the block based design of morphis and the multiprocessing pool api of python. I already use the multiprocessing to great effect in the proof of work and prefix generation.
Also, this is written in a scripting language, Python. Also it is first draft and unoptimized.
If the 115 requests is enough of a problem, which I don't see it being because that is per node, not of the whole network. If that is a problem and can't be improved enough with python, the idea was originally to port it to Rust. Rust wasn't even 1.0 when I started coding, never mind their asyncio io library didn't exist until a couple months ago. Come the Rust port using their newly released asyncio library which performs nearly as well as the libev C well known one, we will be talking the kind of performance you are talking, although 10k requests per second just isn't needed on one node. It is certainly doable though if given the time! Remember, a distributed app doesn't run on one node, and thus need all 10k requests per second on one node.