René's URL Explorer Experiment


Title: added `TokenList::Stream` class to wrap `std::istream` usage and implemented alternative C I/O version by firewave · Pull Request #244 · cppcheck-opensource/simplecpp · GitHub

Open Graph Title: added `TokenList::Stream` class to wrap `std::istream` usage and implemented alternative C I/O version by firewave · Pull Request #244 · cppcheck-opensource/simplecpp

X Title: added `TokenList::Stream` class to wrap `std::istream` usage and implemented alternative C I/O version by firewave · Pull Request #244 · cppcheck-opensource/simplecpp

Description: Reading the file via std::istream includes a considerable overhead caused by std::istream::sentry and others. Using C I/O instead reduces the "total Ir" usage by about 10%. Testing with -q -Ilib/ -D__GNUC__ lib/valueflow.cpp: Clang 13 271,013,439 -> 269,398,283 -> 244,353,123 GCC 11 -> -> `` The intermediate value shows the improvement if we only change the actual input file. The last value if we also do it for all the includes which does not require you to use the new interface function. So we even if you do not change the application which uses this it would still result in a sizable improvement.

Open Graph Description: Reading the file via std::istream includes a considerable overhead caused by std::istream::sentry and others. Using C I/O instead reduces the "total Ir" usage by about 10%. Testing with -...

X Description: Reading the file via std::istream includes a considerable overhead caused by std::istream::sentry and others. Using C I/O instead reduces the "total Ir" usage by about 10%. Testin...

Opengraph URL: https://github.com/cppcheck-opensource/simplecpp/pull/244

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:0db1280d-63f5-3ad8-6dde-001dede4de3b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9132:3A1626:5E22D7:7DF61A:6A51CE8B
html-safe-nonce0299cd5703d11f66517a3ddfe455ff9f8af78a9cbaa7d5e2eb561d48506298b0
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MTMyOjNBMTYyNjo1RTIyRDc6N0RGNjFBOjZBNTFDRThCIiwidmlzaXRvcl9pZCI6IjIyNzk3MzI4NDM5NDgxMzQwMjciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac6a21aefe321312840de77c21d3880f867305b80a3eb87e82d9f248e91f1ef99f
hovercard-subject-tagpull_request:873045906
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/cppcheck-opensource/simplecpp/pull/244/files
twitter:imagehttps://avatars.githubusercontent.com/u/242857?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/242857?s=400&v=4
og:image:altReading the file via std::istream includes a considerable overhead caused by std::istream::sentry and others. Using C I/O instead reduces the "total Ir" usage by about 10%. Testing with -...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/cppcheck-opensource/simplecpp git https://github.com/cppcheck-opensource/simplecpp.git
octolytics-dimension-user_id278097703
octolytics-dimension-user_logincppcheck-opensource
octolytics-dimension-repository_id33434464
octolytics-dimension-repository_nwocppcheck-opensource/simplecpp
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id33434464
octolytics-dimension-repository_network_root_nwocppcheck-opensource/simplecpp
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7aed05249554b889eb33d002851a973eebcc7e91
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/cppcheck-opensource/simplecpp/pull/244/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcppcheck-opensource%2Fsimplecpp%2Fpull%2F244%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcppcheck-opensource%2Fsimplecpp%2Fpull%2F244%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=cppcheck-opensource%2Fsimplecpp
Reloadhttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
Reloadhttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
Reloadhttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
Please reload this pagehttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
cppcheck-opensource https://github.com/cppcheck-opensource
simplecpphttps://github.com/cppcheck-opensource/simplecpp
Notifications https://github.com/login?return_to=%2Fcppcheck-opensource%2Fsimplecpp
Fork 104 https://github.com/login?return_to=%2Fcppcheck-opensource%2Fsimplecpp
Star 263 https://github.com/login?return_to=%2Fcppcheck-opensource%2Fsimplecpp
Code https://github.com/cppcheck-opensource/simplecpp
Issues 82 https://github.com/cppcheck-opensource/simplecpp/issues
Pull requests 30 https://github.com/cppcheck-opensource/simplecpp/pulls
Actions https://github.com/cppcheck-opensource/simplecpp/actions
Wiki https://github.com/cppcheck-opensource/simplecpp/wiki
Security and quality 0 https://github.com/cppcheck-opensource/simplecpp/security
Insights https://github.com/cppcheck-opensource/simplecpp/pulse
Code https://github.com/cppcheck-opensource/simplecpp
Issues https://github.com/cppcheck-opensource/simplecpp/issues
Pull requests https://github.com/cppcheck-opensource/simplecpp/pulls
Actions https://github.com/cppcheck-opensource/simplecpp/actions
Wiki https://github.com/cppcheck-opensource/simplecpp/wiki
Security and quality https://github.com/cppcheck-opensource/simplecpp/security
Insights https://github.com/cppcheck-opensource/simplecpp/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fcppcheck-opensource%2Fsimplecpp%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fcppcheck-opensource%2Fsimplecpp%2Fissues%2Fnew%2Fchoose
danmarhttps://github.com/danmar
cppcheck-opensource:masterhttps://github.com/cppcheck-opensource/simplecpp/tree/master
firewave:streamhttps://github.com/firewave/simplecpp/tree/stream
Conversation 6 https://github.com/cppcheck-opensource/simplecpp/pull/244
Commits 21 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits
Checks 0 https://github.com/cppcheck-opensource/simplecpp/pull/244/checks
Files changed https://github.com/cppcheck-opensource/simplecpp/pull/244/files
Please reload this pagehttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
added TokenList::Stream class to wrap std::istream usage and implemented alternative C I/O version https://github.com/cppcheck-opensource/simplecpp/pull/244/files#top
Show all changes 21 commits https://github.com/cppcheck-opensource/simplecpp/pull/244/files
097a765 added wrapper class "Stream" to TokenList firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/097a7658473912c062e3836813dbb29f4d541a0f
c2ae449 moved some helper function into TokenList::Stream firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/c2ae44915d81595152207b7812eb035bb30914f2
62acc58 simplified UTF-16 checks firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/62acc5826dc822345898100ebc4df504c6acc844
a2cc676 made simplecpp::TokenList::Stream an abstract class and moved impleme… firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/a2cc676ccbe2fafaafb9baffa06c0086f177351e
07ec136 added simplecpp::TokenList::Stream implementation "FileStream" which … firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/07ec136dc71d89bfd4d363bab2daf133bcf43396
81fe8cd use FileStream for includes as well firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/81fe8cdcac58bd1d9b032651b45cf7192ef31684
4f0da78 constness firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/4f0da7842a3f5b3de1a90c1ebf251b674ccc634c
1b52b22 made some TokenList::Stream members private firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/1b52b2211ff058a74174e0a53facedb0d464d9d2
95c747b pulled out repeated UTF-16 character generation code firewave Mar 5, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/95c747b6a99dde5e17056b13d6ab265451b598c3
892183e main.cpp: added command-option "-is" to specify usage of std::istream… firewave Mar 9, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/892183ecbdf32ae2be55d2032905c5ab9e757c9b
26ccd24 test.cpp: got rid of another `std::istringstream` usage firewave Apr 14, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/26ccd246db7cec3335d416987d1d89f124cc191e
e57f312 fixed FileStream::unget() with subsequent calls (i.e. UTF-16 encoding) firewave Apr 19, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/e57f3128db5ee20551b8ac8b7445845b371d7d15
bdc7f3c simplified newline handling in TokenList::Stream::readChar() firewave Apr 19, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/bdc7f3c34521364eb61f469c7e3a5e29d3bb02a7
76b94e3 fixed handling of incomplete UTF-8 BOM 0xefbbbf firewave Apr 19, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/76b94e3ba988688be06eea9fe5cd641260044959
cd084ae test.cpp: added tests for incomplete UTF sequences firewave Apr 19, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/cd084aeecdd9dcdf0de43473b404dd475edace8e
797f899 keep lastCh intact when using FileStream::peek() firewave Apr 20, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/797f899da9141b3fb46b79a1e075902927be10b3
c1da435 fixed uninitialized members in `FileStream` firewave Oct 6, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/c1da435de1410e1210770642b6b084ad59a14b10
52b4b61 .clang-tidy: disabled `modernize-use-override` warning firewave Oct 6, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/52b4b61a8fddc249382c81d30aa771955fe4dcd3
7ff8c98 fixed `readability-inconsistent-declaration-parameter-name` clean-tid… firewave Oct 6, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/7ff8c9899c203b7ddd48f34cbaf7c914138f28fa
c9605fe fixed `-Wshadow` Clang compiler warning firewave Oct 6, 2022 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/c9605feec619bc1aa560e73d1d4a858cdc794062
557099c adjusted parameter order in added `TokenList()` constructor / added s… firewave Feb 25, 2023 https://github.com/cppcheck-opensource/simplecpp/pull/244/commits/557099c46446fa20eff89ecd619ceec26772ee02
Clear filters https://github.com/cppcheck-opensource/simplecpp/pull/244/files
Please reload this pagehttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
Please reload this pagehttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
.clang-tidy https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-0534891fbc8b89b4c521057e7e8dff70d3cbeb822cc9991a3abad77848c289f8
CMakeLists.txt https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a
main.cpp https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
simplecpp.cpp https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-c847846a0c414ac05f52e4f9686648f22c76c9bb152579a253b600223c202832
simplecpp.h https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-8feef6892144dbe750ffc83a1525c796968b56cd4d6500fe8bf22bac61cf9174
test.cpp https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-042cc0321bd0d3c8cb8262c89142b3e6aba34345ae77b4294f5e07dd2687ffcf
.clang-tidyhttps://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-0534891fbc8b89b4c521057e7e8dff70d3cbeb822cc9991a3abad77848c289f8
View file https://github.com/firewave/simplecpp/blob/557099c46446fa20eff89ecd619ceec26772ee02/.clang-tidy
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/cppcheck-opensource/simplecpp/pull/244/{{ revealButtonHref }}
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-0534891fbc8b89b4c521057e7e8dff70d3cbeb822cc9991a3abad77848c289f8
CMakeLists.txthttps://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a
View file https://github.com/firewave/simplecpp/blob/557099c46446fa20eff89ecd619ceec26772ee02/CMakeLists.txt
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/cppcheck-opensource/simplecpp/pull/244/{{ revealButtonHref }}
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20a
main.cpphttps://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
View file https://github.com/firewave/simplecpp/blob/557099c46446fa20eff89ecd619ceec26772ee02/main.cpp
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/cppcheck-opensource/simplecpp/pull/244/{{ revealButtonHref }}
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
https://github.com/cppcheck-opensource/simplecpp/pull/244/files#diff-608d8de3fba954c50110b6d7386988f27295de845e9d7174e40095ba5efcf1bb
Please reload this pagehttps://github.com/cppcheck-opensource/simplecpp/pull/244/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.