Skip to content

Conversation

grisumbras
Copy link
Member

@grisumbras grisumbras commented Mar 19, 2024

  1. Removes embedded older version of Charconv and instead uses the library proper. Fix Remove GCC<5 stuff after Boost 1.87 #1032.
  2. Removes embedded version of ryu and uses Charconv for double formatting.
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

1 similar comment
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@grisumbras grisumbras force-pushed the refactor/charconv branch 2 times, most recently from 227539e to be9028c Compare December 14, 2024 17:06
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

1 similar comment
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

Copy link

codecov bot commented Dec 14, 2024

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.50%. Comparing base (2df2366) to head (bcb9865).
⚠️ Report is 1 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@ Coverage Diff @@ ## develop #993 +/- ## =========================================== - Coverage 93.71% 93.50% -0.22%  =========================================== Files 91 85 -6 Lines 9156 8840 -316 =========================================== - Hits 8581 8266 -315  + Misses 575 574 -1 
Files with missing lines Coverage Δ
include/boost/json/detail/impl/format.ipp 100.00% <100.00%> (ø)

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2df2366...bcb9865. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@grisumbras grisumbras force-pushed the refactor/charconv branch 2 times, most recently from 91a7792 to 9e788cd Compare February 19, 2025 11:11
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@grisumbras grisumbras force-pushed the refactor/charconv branch 2 times, most recently from 3b7526f to c58ed7b Compare February 19, 2025 11:17
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

2 similar comments
@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@sdarwin
Copy link
Collaborator

sdarwin commented Feb 19, 2025

This is crashing the s390 runners. out-of-memory.
The PR was opened 10 months ago. Have you rebased it on develop?
I now adjusted those runners from 2 jobs to 1 job. Try it again.

Screenshot from 2025-02-19 07-13-23

@grisumbras
Copy link
Member Author

I did rebase it on develop.

It is quite interesting that the build is crashing s390 runners. This might be a problem with Boost.Charconv.

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@sdarwin
Copy link
Collaborator

sdarwin commented Feb 19, 2025

This might be a problem with Boost.Charconv.

It used more than 8GB of memory.

I have just kicked off another run on 'develop', to compare that.

@sdarwin
Copy link
Collaborator

sdarwin commented Feb 19, 2025

Depending on the test, even the develop branch may get to nearly 8GB.
Charconv is not the cause.
I don't think JSON was using that much memory a couple years ago.
In any case the runner is now parallel-jobs=1 so more memory is available.

@grisumbras
Copy link
Member Author

I've recorded memory usage when building and running tests. The outlier is pretty much compiling parse_into.cpp:

Config Max mem usage
toolset=gcc variant=release cxxstd=20 3.22GB
toolset=gcc variant=release cxxstd=17 3.15GB
toolset=gcc variant=debug cxxstd=20 3.10GB
toolset=gcc variant=debug cxxstd=17 2.95GB
toolset=clang variant=debug cxxstd=20 2.02GB
toolset=clang variant=debug cxxstd=17 2.00GB
toolset=clang variant=release cxxstd=20 1.51GB
toolset=clang variant=release cxxstd=17 1.42GB

Everthing else is below 0.9GB (https://gist.github.com/grisumbras/5985960c7781c4f657a93605d9e2b0ed).

Unfortuantely, this is inherent to parse_into.cpp. It's very template-heavy. I think, the way we should deal with this is to move it to a separate build target, and run b2 twice: one for regular jobs with regular job count limit, and then the heavy tests one job at a time.

@grisumbras
Copy link
Member Author

BTW, for posterity, the info was collected thusly:

# user-config.jam using gcc : 13 : /usr/bin/time "-f%C|%M" -o/home/grisumbras/dev/stats -a g++-13 ; using clang : 20 : /usr/bin/time "-f%C|%M" -o/home/grisumbras/dev/stats -a clang++-20 ; 

And then b2 was invoked with

rm /home/grisumbras/dev/stats b2 test example toolset=gcc,clang variant=debug,release cxxstd=17,20 warnings=extra testing.launcher="/usr/bin/time -f'%C|%M' -o/home/grisumbras/dev/stats -a" 

After that the file /home/grisumbras/dev/stats contained collected statistics.

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://993.json.prtest2.cppalliance.org/libs/json/doc/html/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants