You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "tinloaf (via GitHub)" <gi...@apache.org> on 2023/05/12 13:03:43 UTC

[GitHub] [thrift] tinloaf opened a new pull request, #2806: THRIFT-5709: Drastically improve to_string() performance.

tinloaf opened a new pull request, #2806:
URL: https://github.com/apache/thrift/pull/2806

   <!-- Explain the changes in the pull request below: -->
   Currently, the `to_string()` overloads in `TToString.h` call the `std::locale` constructor for every single call. Creating locales is surprisingly expensive. We have an application where we - especially during tests - write large amounts of Thrift dumps to disk, and is this application we currently spend around 17% of total CPU time in std::locale's constructor (building with MSVC, in a Release build - other compilers might optimize this away?). With this change, it's basically down to zero.
   
   Since we always create the exact same locale anyways, using a `const static` one does not hurt.
   
   <!-- We recommend you review the checklist/tips before submitting a pull request. -->
   
   - [x] Did you create an [Apache Jira](https://issues.apache.org/jira/projects/THRIFT/issues/) ticket?  ([Request account here](https://selfserve.apache.org/jira-account.html), not required for trivial changes)
   - [x] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
   - [x] Did you squash your changes to a single commit?  (not required, but preferred)
   - [x] Did you do your best to avoid breaking changes?  If one was needed, did you label the Jira ticket with "Breaking-Change"?
   - [x] If your change does not involve any code, include `[skip ci]` anywhere in the commit message to free up build resources.
   
   <!--
     The Contributing Guide at:
     https://github.com/apache/thrift/blob/master/CONTRIBUTING.md
     has more details and tips for committing properly.
   -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] tinloaf commented on pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "tinloaf (via GitHub)" <gi...@apache.org>.
tinloaf commented on PR #2806:
URL: https://github.com/apache/thrift/pull/2806#issuecomment-1549086751

   > Why do we need 4 instances?
   
   I don't think we do, I just wanted to make the change as small as possible. Would you prefer a global constant (in an anonymous namspace probably)?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] tinloaf commented on a diff in pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "tinloaf (via GitHub)" <gi...@apache.org>.
tinloaf commented on code in PR #2806:
URL: https://github.com/apache/thrift/pull/2806#discussion_r1210080647


##########
lib/cpp/src/thrift/TToString.h:
##########
@@ -32,10 +32,15 @@
 namespace apache {
 namespace thrift {
 
+// unnamed namespace to enforce internal linkage - could be done with 'inline' when once have C++17

Review Comment:
   TODO: `when`/`once` is duplicate here.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] Jens-G merged pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "Jens-G (via GitHub)" <gi...@apache.org>.
Jens-G merged PR #2806:
URL: https://github.com/apache/thrift/pull/2806


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] Jens-G commented on pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "Jens-G (via GitHub)" <gi...@apache.org>.
Jens-G commented on PR #2806:
URL: https://github.com/apache/thrift/pull/2806#issuecomment-1548486379

   Why do we need 4 instances?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] Jens-G commented on pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "Jens-G (via GitHub)" <gi...@apache.org>.
Jens-G commented on PR #2806:
URL: https://github.com/apache/thrift/pull/2806#issuecomment-1550291629

   Well, I just thought if we are going to optimize, why don't we do it right ... so yes, would make sense to me, if that's not causing other overhead, too much confusion or work, then I'm for it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [thrift] tinloaf commented on pull request #2806: THRIFT-5709: Drastically improve to_string() performance.

Posted by "tinloaf (via GitHub)" <gi...@apache.org>.
tinloaf commented on PR #2806:
URL: https://github.com/apache/thrift/pull/2806#issuecomment-1551610850

   @Jens-G I have updated the PR to use a single, TU-local locale.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@thrift.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org