digitalmars.D - pprof DLang needs?
- zoujiaqing (7/7) Apr 19 2020 PHP use xhprof analysis performance
- Andrej Mitrovic (4/11) Apr 19 2020 Vladimir had a D memory profiler implemented a while ago:
- Jacob Carlborg (5/13) Apr 20 2020 DMD has the `-profile` flag. D programs should work in profilers for
- zoujiaqing (10/23) Apr 20 2020 Thanks Jacob, I know `dub build --build=profile`, but many
- zoujiaqing (5/16) Nov 20 2020 Hi Jacob :)
- Guillaume Piolat (6/10) Nov 20 2020 Hello,
- zoujiaqing (5/17) Nov 22 2020 Thanks!
- welkam (9/9) Apr 20 2020 I use perf:
- zoujiaqing (2/11) Apr 20 2020 Thanks, I will be try :)
- welkam (7/19) Apr 20 2020 Tools that work with C programs also work with D programs. Also
- Tim (4/9) Apr 20 2020 heaptrack looks interesting. Unfortunately it only found
- welkam (5/6) Apr 20 2020 Whats that? You mean GC heap? I tried that tool on DMD and it
- Eduard Staniloiu (4/11) Apr 21 2020 I just want to add that valgrind works really well with D.
- zoujiaqing (2/13) Apr 23 2020 Thanks!
- Tim (7/14) May 03 2020 I have modified heaptrack to also track allocations on the D GC
PHP use xhprof analysis performance Golang use pprof analysis performance Rust use pprof-rs analysis performance D language also needs a tool like this. [0] https://github.com/google/pprof [1] https://github.com/facebook/xhprof [2] https://docs.rs/pprof/0.3.16/pprof
Apr 19 2020
On Monday, 20 April 2020 at 01:59:31 UTC, zoujiaqing wrote:PHP use xhprof analysis performance Golang use pprof analysis performance Rust use pprof-rs analysis performance D language also needs a tool like this. [0] https://github.com/google/pprof [1] https://github.com/facebook/xhprof [2] https://docs.rs/pprof/0.3.16/pprofVladimir had a D memory profiler implemented a while ago: https://github.com/CyberShadow/Diamond I'm not sure if it still compiles though.
Apr 19 2020
On 2020-04-20 03:59, zoujiaqing wrote:PHP use xhprof analysis performance Golang use pprof analysis performance Rust use pprof-rs analysis performance D language also needs a tool like this. [0] https://github.com/google/pprof [1] https://github.com/facebook/xhprof [2] https://docs.rs/pprof/0.3.16/pprofDMD has the `-profile` flag. D programs should work in profilers for C/C++ as well. -- /Jacob Carlborg
Apr 20 2020
On Monday, 20 April 2020 at 07:49:33 UTC, Jacob Carlborg wrote:On 2020-04-20 03:59, zoujiaqing wrote:Thanks Jacob, I know `dub build --build=profile`, but many projects can't be used. zoujiaqing osx:~/projects/hunt-net/examples/echoPHP use xhprof analysis performance Golang use pprof analysis performance Rust use pprof-rs analysis performance D language also needs a tool like this. [0] https://github.com/google/pprof [1] https://github.com/facebook/xhprof [2] https://docs.rs/pprof/0.3.16/pprofDMD has the `-profile` flag. D programs should work in profilers for C/C++ as well.dub build --build=profile master [3dbfc4a]Performing "profile" build using /Library/D/dmd/bin/dmd for x86_64. hunt 1.4.9: building configuration "library"... /Library/D/dmd/src/phobos/std/concurrency.d(2053,17): Warning: statement is not reachable /Library/D/dmd/bin/dmd failed with exit code 1.
Apr 20 2020
On Monday, 20 April 2020 at 07:49:33 UTC, Jacob Carlborg wrote:On 2020-04-20 03:59, zoujiaqing wrote:Hi Jacob :) Dynamic code performance analysis is difficult to track. For example, each HTTP request data is different, in low performance we can analyze a single request.PHP use xhprof analysis performance Golang use pprof analysis performance Rust use pprof-rs analysis performance D language also needs a tool like this. [0] https://github.com/google/pprof [1] https://github.com/facebook/xhprof [2] https://docs.rs/pprof/0.3.16/pprofDMD has the `-profile` flag. D programs should work in profilers for C/C++ as well.
Nov 20 2020
On Friday, 20 November 2020 at 09:56:10 UTC, zoujiaqing wrote:Hi Jacob :) Dynamic code performance analysis is difficult to track. For example, each HTTP request data is different, in low performance we can analyze a single request.Hello, With Intel System Studio you can get Intel Inspector and Amplifier for free. When built in x86_64 wth the .pdb you can analyze A D program (use -b release-debug for profiling).
Nov 20 2020
On Friday, 20 November 2020 at 14:29:30 UTC, Guillaume Piolat wrote:On Friday, 20 November 2020 at 09:56:10 UTC, zoujiaqing wrote:Thanks! But, Everyone should first understand the benefits of pprof! Compared with the normal - profile, these are two concepts.Hi Jacob :) Dynamic code performance analysis is difficult to track. For example, each HTTP request data is different, in low performance we can analyze a single request.Hello, With Intel System Studio you can get Intel Inspector and Amplifier for free. When built in x86_64 wth the .pdb you can analyze A D program (use -b release-debug for profiling).
Nov 22 2020
I use perf: perf record -g <program_name> then perf report -g 'graph,0.5,caller' And for memory usage I use heaptrack. The new tool you propose needs to bring something new to be worth using over the others and I dont think rewriting tools that already exist is worth it. Better improve existing ones. The only thing my mentioned tools are missing is D symbol demangling.
Apr 20 2020
On Monday, 20 April 2020 at 08:28:43 UTC, welkam wrote:I use perf: perf record -g <program_name> then perf report -g 'graph,0.5,caller' And for memory usage I use heaptrack. The new tool you propose needs to bring something new to be worth using over the others and I dont think rewriting tools that already exist is worth it. Better improve existing ones. The only thing my mentioned tools are missing is D symbol demangling.Thanks, I will be try :)
Apr 20 2020
On Monday, 20 April 2020 at 11:11:22 UTC, zoujiaqing wrote:On Monday, 20 April 2020 at 08:28:43 UTC, welkam wrote:Tools that work with C programs also work with D programs. Also it would be nice to know what kind of information are you looking for. If you want to know what functions consume what time then there are plenty of tools. If you want to profile mutexes then it might be hard to do that with available tools. Just saying that D needs profiling tool is not enough to get to executable planI use perf: perf record -g <program_name> then perf report -g 'graph,0.5,caller' And for memory usage I use heaptrack. The new tool you propose needs to bring something new to be worth using over the others and I dont think rewriting tools that already exist is worth it. Better improve existing ones. The only thing my mentioned tools are missing is D symbol demangling.Thanks, I will be try :)
Apr 20 2020
On Monday, 20 April 2020 at 08:28:43 UTC, welkam wrote:And for memory usage I use heaptrack. The new tool you propose needs to bring something new to be worth using over the others and I dont think rewriting tools that already exist is worth it. Better improve existing ones. The only thing my mentioned tools are missing is D symbol demangling.heaptrack looks interesting. Unfortunately it only found allocations with malloc for me. Is there an option or a fork, which also tracks allocations on the D heap?
Apr 20 2020
On Monday, 20 April 2020 at 17:30:11 UTC, Tim wrote:allocations on the D heap?Whats that? You mean GC heap? I tried that tool on DMD and it found its custom allocator so it did all the things I needed it for. But yeah for better support you would need to modify the source and since its written in C++ I dont think I will touch it.
Apr 20 2020
On Monday, 20 April 2020 at 21:22:37 UTC, welkam wrote:On Monday, 20 April 2020 at 17:30:11 UTC, Tim wrote:I just want to add that valgrind works really well with D. You can use massif to profile the heap allocations [0]. [0] - https://www.valgrind.org/docs/manual/ms-manual.htmlallocations on the D heap?Whats that? You mean GC heap? I tried that tool on DMD and it found its custom allocator so it did all the things I needed it for. But yeah for better support you would need to modify the source and since its written in C++ I dont think I will touch it.
Apr 21 2020
On Tuesday, 21 April 2020 at 20:17:37 UTC, Eduard Staniloiu wrote:On Monday, 20 April 2020 at 21:22:37 UTC, welkam wrote:Thanks!On Monday, 20 April 2020 at 17:30:11 UTC, Tim wrote:I just want to add that valgrind works really well with D. You can use massif to profile the heap allocations [0]. [0] - https://www.valgrind.org/docs/manual/ms-manual.htmlallocations on the D heap?Whats that? You mean GC heap? I tried that tool on DMD and it found its custom allocator so it did all the things I needed it for. But yeah for better support you would need to modify the source and since its written in C++ I dont think I will touch it.
Apr 23 2020
On Monday, 20 April 2020 at 21:22:37 UTC, welkam wrote:On Monday, 20 April 2020 at 17:30:11 UTC, Tim wrote:I have modified heaptrack to also track allocations on the D GC heap: https://github.com/tim-dlang/heaptrack/tree/heaptrack-d When using it, druntime has to be linked dynamically. It also only works, when the application is launched by heaptrack, and not, when heaptrack is attached later. The modified heaptrack will now only work with D applications.allocations on the D heap?Whats that? You mean GC heap? I tried that tool on DMD and it found its custom allocator so it did all the things I needed it for. But yeah for better support you would need to modify the source and since its written in C++ I dont think I will touch it.
May 03 2020