forked from matteblair/yaml-cpp
-
Notifications
You must be signed in to change notification settings - Fork 3
Turbo YAML #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Parent:
Fixes for Visual Studio.
Merged
Turbo YAML #7
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- simplify memory management
a Node is valid when its shared_memory_holder is not null
rarely need m_dependencies, wrap it in a unique_ptr to require less space in 'node' - or use forward list?
- check on which level node destruction should be inlined. since nodes are hold in continuous node_buckets expanding this destructor in the loop seems to slow things down
squshed: avoid fetches in regex matchers cleanup refactor PlainScalar matchers save move ScanScalarEnd matchers to ScanScalar remove remaining dynamic regexps fixup cleanup add Source::get() : char
# Conflicts: # src/stream.cpp
# Conflicts: # src/scanner.cpp # src/scanscalar.cpp # src/scantoken.cpp # Conflicts: # src/scanner.cpp # src/scantoken.cpp
# Conflicts: # src/scanner.cpp
# Conflicts: # src/scanner.cpp
squash exp
- pass Source<4> by value - cleanups
- keep stack tidy during recursion
537fcee to
099138c
Compare
2d376ad to
415c66d
Compare
- use single forward_list, with in/out iterators push simply moves free tokens from begin to end in the common case. pop just increments the out iterator. - return Token& from push, only assign string only when needed - pre-allocate free tokens - nicely pool allocated Token list
- avoid inline stuff that is rarely used
415c66d to
e6c6954
Compare
tallytalwar
approved these changes
Dec 12, 2016
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Waiting on travis.
|
this would speed up yaml? |
|
would this upstream? |
|
Yes, this branch is up to ten times faster for parsing yaml in our tests. Changes of this branch may go upstream when the author is interested. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.