[
https://issues.apache.org/jira/browse/TAP5-2332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14005885#comment-14005885
]
Lance edited comment on TAP5-2332 at 5/22/14 1:03 PM:
------------------------------------------------------
I agree with Thiago...
The patch patch changes the following files...
{code}
.../org/apache/tapestry5/internal/OptionModelImpl.java | 2 +-
.../beaneditor/MessagesConstraintGenerator.java | 3 +--
.../internal/services/DocumentLinkerImpl.java | 2 +-
.../apache/tapestry5/internal/services/EventImpl.java | 2 +-
.../tapestry5/internal/services/RenderQueueImpl.java | 18 ++++++++++--------
.../javascript/JavaScriptStackPathConstructorImpl.java | 4 +---
.../internal/structure/ComponentPageElementImpl.java | 2 +-
.../internal/services/RenderQueueImplTest.java | 2 +-
.../internal/services/PerThreadServiceLifecycle.java | 2 +-
{code}
Where is the evidence that these classes are hot-spots?
was (Author: uklance):
I agree with Thiago. the patch patch changes the following...
{code}
.../org/apache/tapestry5/internal/OptionModelImpl.java | 2 +-
.../beaneditor/MessagesConstraintGenerator.java | 3 +--
.../internal/services/DocumentLinkerImpl.java | 2 +-
.../apache/tapestry5/internal/services/EventImpl.java | 2 +-
.../tapestry5/internal/services/RenderQueueImpl.java | 18 ++++++++++--------
.../javascript/JavaScriptStackPathConstructorImpl.java | 4 +---
.../internal/structure/ComponentPageElementImpl.java | 2 +-
.../internal/services/RenderQueueImplTest.java | 2 +-
.../internal/services/PerThreadServiceLifecycle.java | 2 +-
{code}
Where is the evidence that these classes are hot-spots?
> Optimize String concatenation performance
> -----------------------------------------
>
> Key: TAP5-2332
> URL: https://issues.apache.org/jira/browse/TAP5-2332
> Project: Tapestry 5
> Issue Type: Improvement
> Reporter: Michael Mikhulya
> Assignee: Jochen Kemnade
> Priority: Minor
> Labels: performance
> Attachments: 0001-TAP5-2332-get-rid-of-String.format-usage.patch,
> profile-patched.png, profile-vanilla.png
>
>
> During profiling I found that String.format provides much load on CPU.
> In many cases in Tapestry String.format can be easily replaced with simple
> String concatenation.
> Simple JMH (http://openjdk.java.net/projects/code-tools/jmh/) test
> {code:java}
> public class FormatVsConcat {
> private static final String format = "This is a test string with %s";
> private static final String concat1 = "This is a test string with ";
> private static final String concat2 = "test word";
> @GenerateMicroBenchmark
> public String format() {
> return String.format(format, concat2);
> }
> @GenerateMicroBenchmark
> public String concat() {
> return concat1 + concat2;
> }
> }
> {code}
> shows, that concatenation is 366(!) times faster.
> I removed only hot places in tapestry and get following results with apache
> benchmark:
> *Not patched* tapestry version:
> Requests per second: *21.38 /sec* (mean)
> Time per request: *46.764 [ms]* (mean)
> *Patched* tapestry version:
> Requests per second: *27.77 /sec* (mean)
> Time per request: *36.013 [ms]* (mean)
> So we gained 10ms per request or 20% of rendering time.
> If you don't mind I would like to get rid of String.format in all places of
> Tapestry and provide patch. I fixed only hot places which appeared during
> ab-profiling of one concrete page. So it is very likely that not all hot
> places were found and fixed.
--
This message was sent by Atlassian JIRA
(v6.2#6252)