Saturday Night Tuning

Saturday Night Tuning

I've done some shuffling of the I/O, and have cranked up the speed a bit. From a hundred or so objects per second, with all the put semantics, is up to nearly double that.


Improved Performance

To understand what I did, here's a block diagram of the current state of things. Basically, at the file block section, when it committed, instead of just doing one write and blocking everything, it copies the current dirty buffers and drops them into thread pool, with each job waiting on the previous one, and the file_block prior to either clearing, shutting down, or doing a physical read. Obviously there's some optimizations to be had here.

Ultimately, this is fairly straightfoward stuff. I have a web server that gets fed listen jobs by a loop. When a job is queued, it goes into the threadpool. I can put into the threadpool my own jobs by using PostQueuedCompletionStatus, HttpReceiveHttpRequest, ReadFile and WriteFile, each of which wakes up a job as threads are available on the queue. Each job calls the chumpy that gets the next item from the queue, and those items are objects.

So basically, there's an order to it. Below the light blue arrows are to and from MS Windows, and the blue arrows are calls. There's obviously still more performance gains to be had. But for a Saturday night, this isn't too bad of a start.


Draft diagram of Corona flow.

As it turns out, right now, my biggest bottlenecks are not from i/o dragging me down. But Visual Studio offers a lot of help for checking out this in more detail.


要查看或添加评论,请登录

Todd Bandrowsky的更多文章

  • A Schema for the Revolution

    A Schema for the Revolution

    I've been making some syntactical sugar enhancements to Corona designed to test it for the kind of broad, expandable…

  • Testing Multithreaded Systems

    Testing Multithreaded Systems

    Testing Corona Genuine automated testing is absolutely critical to make reliable systems. In my process with Corona, I…

    2 条评论
  • The Case of the Visual Studio Profiler

    The Case of the Visual Studio Profiler

    After church, I took to working on performance while listening to my beloved Browns and Eagles inflict their own…

  • Boom! Corona Database Engine Roars to Life

    Boom! Corona Database Engine Roars to Life

    Introduction Corona is a project I have been working on for a long time. At its heart is a fairly simple idea - to…

    2 条评论
  • Reparations Moving Forward

    Reparations Moving Forward

    It's been a few days since I've last posted on Linked In regarding the progress of Reparations, so it seemed like a…

  • Reparations is Now

    Reparations is Now

    I've been haunted for some time, and there's been quite a bit of a back and forth in my soul. During that struggle in…

  • Care for your Samsung SSD

    Care for your Samsung SSD

    I had written previously that my previous Samsung SSD died. I have been living off of my previous Sabrent for a while…

    4 条评论
  • Love - Lo Code / No Limit

    Love - Lo Code / No Limit

    "The demos speak like silence..

  • Wondering Aloud About COVID, Flying Destroyers and Driving to Mordor

    Wondering Aloud About COVID, Flying Destroyers and Driving to Mordor

    DISCLOSURES Before I begin, I must say that although I did work on PierVantage, which appears in this story, I cannot…

  • Desks and Databases

    Desks and Databases

    The Desk Over the holidays I took some steps to improve my working space. Particular about everything, I went and built…

社区洞察

其他会员也浏览了