| Summary: | More efficient write technique in SafeChunkyOutputStream. | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Jeremy Whiting <jwhiting> | ||||
| Component: | Resources | Assignee: | Jeremy Whiting <jwhiting> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | akurtako, karsten.thoms, Lars.Vogel, loskutov | ||||
| Version: | 4.17 | ||||||
| Target Milestone: | 4.18 M1 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| See Also: |
https://git.eclipse.org/r/c/platform/eclipse.platform.resources/+/168842 https://bugs.eclipse.org/bugs/show_bug.cgi?id=566983 https://git.eclipse.org/c/platform/eclipse.platform.resources.git/commit/?id=46ccfcd6080964a9923a854609a750325f2342ce |
||||||
| Whiteboard: | |||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 566485 | ||||||
| Attachments: |
|
||||||
|
Description
Jeremy Whiting
Thanks, have you verified the change with some kind of performance testing? Ideally either as unit test or simple standalone example using this API. I'll get some JMH results and provide them here. Created attachment 284081 [details]
Primitive summary of stack frame durations.
A benchmark was created to compare the difference. These are the headline results. An attachment shows in more detail the time spent in the call stack. Benchmark Mode Cnt Score Error Units MyBenchmark.original thrpt 5 18.339 ± 0.359 ops/ms MyBenchmark.original:·stack thrpt NaN --- MyBenchmark.proposed thrpt 5 26.803 ± 0.193 ops/ms MyBenchmark.proposed:·stack thrpt NaN --- The call stack of the original shows the write method taking 30.9%. The benchmark can be downloaded here [1]. [1] https://gitlab.com/whitingjr/jdt-resources-jmh-java Looks promising! Thanks Jeremy for looking into this. Should a similar change be done for SafeFileOutputStream? And on the input side, what about SafeChunkyInputStream and SafeFileInputStream? Thanks Jeremy. Gerrit change https://git.eclipse.org/r/c/platform/eclipse.platform.resources/+/168842 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.resources.git/commit/?id=46ccfcd6080964a9923a854609a750325f2342ce The three classes you suggested are good candidates. Shall I create a separate ticket ? (In reply to Jeremy Whiting from comment #9) > The three classes you suggested are good candidates. > Shall I create a separate ticket ? I created already tickets and implemented some prototypes, would be great if you can take them over. Is it OK to assign the bugs to you? |