Comments (3)
Thanks for this, it is great that you are willing to make improvements!
from rapidcsv.
Thank you, I'll try add some performance test(s) to this project and check if your suggestion applies across platforms, and change the code accordingly.
Generally speaking on performance there's a trade-off between the "simplicity" of the API vs. raw throughput, and rapidcsv (despite its name) focuses on ease-of-use (and enabling rapid development). So I'm pretty sure there are other CSV libraries which are faster out there (but leaving more work to the application code).
Anyway, you seem to have found a good low-level improvement (not affecting API usability) which I'm happy to include if I can confirm the results on my systems. I would have thought a decent compiler would produce similar code for those two lines, but that assumption seem to be wrong.
from rapidcsv.
Thanks @fordp2002 - I can confirm the suggested improvement applies for all three major platforms (Linux, Mac, Windows). Measurement data for ptest002.cpp (which essentially just loads a CSV file) before and after fix are provided below. Will proceed to merge the fix.
Linux: before 53.4 ms --> after 37.9 ms
Mac: before 72.4 ms --> after 30.2 ms
Windows: before 33.5 ms --> after 10.7 ms
from rapidcsv.
Related Issues (20)
- Quotes in Text HOT 7
- How to skip few rows before loading HOT 1
- Compilation error on Windows HOT 8
- Removing Columns HOT 12
- std::string_view support HOT 3
- sign-conversion warnings HOT 3
- Make quoting character configurable HOT 2
- `pTrim` unexpectedly fails when `pSeparator` is the space character HOT 2
- [bug] Test errors occur when running `winmake.bat` on non-utf8 default encoding platform. HOT 2
- Provide imported target "rapidcsv::rapidcsv" and config files for CMake find_package HOT 4
- [bug] Cannot run `winmake.bat` directly to configure and build the project on Windows. HOT 1
- Add documentation for using package managers vcpkg/conan to fetch rapidcsv HOT 2
- Incorrect precision in default Converter.ToStr() depending on type HOT 2
- `mNumericLocale` only considers C-locale, but not C++-locale HOT 2
- Setting cell value is not working correctly with column headers offset
- Conflict caused by `typedef SSIZE_T ssize_t;` HOT 5
- Retain UTF-8 BOM on Save
- Add two SetCell methods for consistency with GetCell HOT 1
- basic_ios::clear: iostream error HOT 4
- openSUSE 15.4 / g++ v7.5.0 build warnings
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rapidcsv.