[cover image] data structure of PageContainer (image credit: Jian Zhong)

PageContainer: Fast, Direct Data I/O Without OS Buffering

When creating high-speed data streaming applications, it’s important to avoid unnecessary data transfer to keep things fast and efficient. Operating systems (OS) automatically buffer file input/output (I/O) in the computer’s memory. However, many data streaming applications already have their own buffering steps, making the OS’s additional buffering unnecessary. Disabling this OS buffering allows direct control of data transfer, but it requires the application to access data in sizes that are multiples of the system page size (or disk sector size)....

June 13, 2024 · 14 min · 2832 words · Jian Zhong
[cover image] diagram of the configuration file parser (image credit: Jian Zhong)

Building a Configuration File Parser with C++

Configuration files are commonly used to adjust settings in computer programs. I’m presently developing a configuration file parser for my high-speed data acquisition system using C++. Along the way, I’ve discovered some useful techniques involving C++ generics and inheritance that streamline coding. Therefore, I decided to document these tricks in the hope that they’ll be beneficial to others. You can find the ready-to-use source code for this configuration file parser in my GitHub repository....

April 21, 2024 · 21 min · 4369 words · Jian Zhong