832b6fc | Pierre Schweitzer | 26 September 2013, 12:23:04 UTC | Simplify the call graph storage by removing redundant information | 26 September 2013, 12:23:04 UTC |
2b0d14e | Pierre Schweitzer | 23 September 2013, 13:18:15 UTC | Add more build targets for easier comparisons | 23 September 2013, 13:18:15 UTC |
68cc9b7 | Pierre Schweitzer | 11 September 2013, 16:13:01 UTC | Changed the way we handle multithreading. The previous way was wrong. Now, we ask the user to define when he wants multithreading support Added a semaphore to allow the new thread to signal when it's ready. This prevents mutex to be released too early and thus, prevents race conditions. Cut the advice around pthread_create in two (before/after), because the around advice appears to generate something wrong that G++ is unable to build. | 11 September 2013, 16:13:01 UTC |
0fa2a76 | Pierre Schweitzer | 11 September 2013, 13:06:06 UTC | Fix the broken logic with multi-threading support. The previously generated call graph was just wrong, mixing all the data possible. Now, we generate a complete call graph, with all the correct data for each thread. Furthermore, we can now know which thread is called by whom. The drawback of such method is that it requires the user doesn't use pthread_create() anymore but TProfiler::pthread_create() so that we can weave on it. This function has the exact same prototype and behaviour than pthread_create() | 11 September 2013, 13:06:06 UTC |
55ed1ae | Pierre Schweitzer | 11 September 2013, 09:19:05 UTC | Remove now useless variable (after: 1609e11bd555e819b6ce83530622198155fb15ae) | 11 September 2013, 09:19:05 UTC |
4f9ab96 | Pierre Schweitzer | 28 August 2013, 15:47:10 UTC | Cosmetic code fix | 28 August 2013, 15:47:10 UTC |
bec8a70 | Pierre Schweitzer | 28 August 2013, 15:19:55 UTC | Thanks to 500954476f5597681d983cd0abdfb6456ca8d317, this condition cannot be wrong anymore | 28 August 2013, 15:19:55 UTC |
1609e11 | Pierre Schweitzer | 28 August 2013, 15:15:54 UTC | Take advantage of 5d5ee98d99a9ecf7d670412cc8a961693d1815da Our arrays size is now constant and we don't need to have algorithms that can adapt to its changing size. This helps simplifying the reduce operation at the end | 28 August 2013, 15:15:54 UTC |
9923c84 | Pierre Schweitzer | 28 August 2013, 14:06:32 UTC | Take advantage of 500954476f5597681d983cd0abdfb6456ca8d317. As we limit usage of features, we can make assertions on their usage in code | 28 August 2013, 14:06:32 UTC |
5009544 | Pierre Schweitzer | 28 August 2013, 13:44:11 UTC | Only enable the distribution features if we have enough cores on the machine (ie, more than 1) | 28 August 2013, 13:44:11 UTC |
5d5ee98 | Pierre Schweitzer | 28 August 2013, 13:34:00 UTC | Quit using online processors count and move to configured processors count. It is the maximum processors count usuable, even if not online yet. It is set at boot time. It will help simplify the code | 28 August 2013, 13:34:00 UTC |
c2d3f80 | Pierre Schweitzer | 15 August 2013, 08:51:59 UTC | Add support for multithreaded code profiling. So far profiler relies on a big lock to ensure that its data are not being overwritten while read. Code is not directly implemented in the aspect to prevent a superfluous lib pthread dependency. | 15 August 2013, 08:51:59 UTC |
74f71ad | Pierre Schweitzer | 13 August 2013, 11:39:47 UTC | Also prune unused cores for cores changes tracking Fix a broken test that lead cores changes tracking NOT to be working (always null...) | 13 August 2013, 11:39:47 UTC |
d8400ff | Pierre Schweitzer | 13 August 2013, 11:33:47 UTC | Add main advices first, so that they are executed first. This fixes arguments usage before they are even set. Display nbProcs in TProfilerAssert trace Prune cores with no changes on display | 13 August 2013, 11:33:47 UTC |
18b20ac | Pierre Schweitzer | 13 August 2013, 11:07:46 UTC | Remove useless insertion (it always fails) | 13 August 2013, 11:07:46 UTC |
b0fcae3 | Pierre Schweitzer | 13 August 2013, 09:51:41 UTC | Add a possibility to track function movement between machine cores. Will likely require fixes Using online processors as upper limit should be avoided in the future too... | 13 August 2013, 09:51:41 UTC |
762e02d | Pierre Schweitzer | 05 June 2013, 13:26:11 UTC | Only display core usage if asked for it (introduces --acprof-with-core-usage) | 05 June 2013, 13:26:11 UTC |
5e6f301 | Pierre Schweitzer | 05 June 2013, 13:21:11 UTC | Add support for profiling on which CPU core the code ended running | 05 June 2013, 13:21:11 UTC |
b269f58 | Pierre Schweitzer | 06 March 2013, 14:06:41 UTC | Add sanity checks | 06 March 2013, 14:06:41 UTC |
f5aa316 | Pierre Schweitzer | 06 March 2013, 13:48:47 UTC | Use appropriate macros to perform stuff | 06 March 2013, 13:48:47 UTC |
c76da39 | Pierre Schweitzer | 06 March 2013, 13:23:57 UTC | Really count time using Linux resource usage counters. This allows counting user time and kernel time. Report both. | 06 March 2013, 13:23:57 UTC |
0df761b | Pierre Schweitzer | 15 February 2013, 10:11:58 UTC | Use ag++ to make compilation simplier | 15 February 2013, 10:11:58 UTC |
681ccd1 | Pierre Schweitzer | 15 February 2013, 08:19:42 UTC | Update README.md with limitations | 15 February 2013, 08:19:42 UTC |
35744fe | Pierre Schweitzer | 14 February 2013, 17:22:35 UTC | Add more sanity checks | 14 February 2013, 17:22:35 UTC |
de8351a | Pierre Schweitzer | 14 February 2013, 16:49:10 UTC | Complete .gitignore | 14 February 2013, 16:49:10 UTC |
9e45584 | Pierre Schweitzer | 14 February 2013, 16:48:34 UTC | Complexify example again | 14 February 2013, 16:48:34 UTC |
1724332 | Pierre Schweitzer | 14 February 2013, 16:41:37 UTC | Complexify example with class | 14 February 2013, 16:41:37 UTC |
a225758 | Pierre Schweitzer | 13 February 2013, 16:56:55 UTC | Add functions_comp.cpp to .gitignore | 13 February 2013, 16:56:55 UTC |
a03bd98 | Pierre Schweitzer | 13 February 2013, 16:56:19 UTC | Complexify example | 13 February 2013, 16:56:19 UTC |
c2ac8be | Pierre Schweitzer | 13 February 2013, 16:55:02 UTC | Remove overzealous code that led to wrong output file for callgrind. This fixes files names handling. Even if it appears that there are still bugs with line position (?) | 13 February 2013, 16:55:02 UTC |
2a8a5d5 | Pierre Schweitzer | 13 February 2013, 16:44:35 UTC | Change time code to get another independant counter. This allows switching time resolution to ms. | 13 February 2013, 16:44:35 UTC |
3f34f84 | Pierre Schweitzer | 13 February 2013, 16:29:46 UTC | Also display file and line number in stdout output | 13 February 2013, 16:29:46 UTC |
a6ee056 | Pierre Schweitzer | 18 December 2012, 18:09:25 UTC | Also add time as profiling data. Should switch to nanoseconds resolution | 18 December 2012, 18:09:25 UTC |
d3d8107 | Pierre Schweitzer | 18 December 2012, 17:58:22 UTC | Complete .gitignore file | 18 December 2012, 17:58:22 UTC |
03284ca | Pierre Schweitzer | 18 December 2012, 17:57:38 UTC | Complexify example to allow PI computation | 18 December 2012, 17:57:38 UTC |
08202c3 | Pierre Schweitzer | 18 December 2012, 17:48:55 UTC | Cosmetic change | 18 December 2012, 17:48:55 UTC |
a3bfc03 | Pierre Schweitzer | 18 December 2012, 17:41:04 UTC | Allow compiling the program alone | 18 December 2012, 17:41:04 UTC |
48ed38f | Pierre Schweitzer | 18 December 2012, 17:24:02 UTC | Only use a function that already exists in the tree IF it has the same execution path | 18 December 2012, 17:24:02 UTC |
96e322a | Pierre Schweitzer | 18 December 2012, 16:51:08 UTC | Implement own asserts to be able to dump context in case of failure | 18 December 2012, 16:51:08 UTC |
213bebd | Pierre Schweitzer | 18 December 2012, 13:21:25 UTC | Rewrite the callgrind output generator using the new info It's not fully right, but the results are closer to the reality | 18 December 2012, 13:21:25 UTC |
47ba614 | Pierre Schweitzer | 18 December 2012, 13:04:49 UTC | Store more information about children and parents | 18 December 2012, 13:04:49 UTC |
32d4596 | Pierre Schweitzer | 17 December 2012, 17:47:33 UTC | Also print summary | 17 December 2012, 17:47:33 UTC |
e525d38 | Pierre Schweitzer | 17 December 2012, 17:19:12 UTC | Comments++ | 17 December 2012, 17:19:12 UTC |
795106a | Pierre Schweitzer | 17 December 2012, 17:16:48 UTC | Zero ununsed args in command line Delete args in destructor Display command line in output file | 17 December 2012, 17:16:48 UTC |
86264a4 | Pierre Schweitzer | 17 December 2012, 17:04:56 UTC | Add PID to the output file | 17 December 2012, 17:04:56 UTC |
ad78f59 | Pierre Schweitzer | 17 December 2012, 16:44:43 UTC | Simplify code | 17 December 2012, 16:44:43 UTC |
1a03411 | Pierre Schweitzer | 17 December 2012, 16:00:45 UTC | Reimplement proper code for Callgrind output It takes into account call graph to produce dependencies. Works in callgrind even though some values are buggy. Furthermore, AspectC++ seems to have issues with files & lines... | 17 December 2012, 16:00:45 UTC |
856c8d9 | Pierre Schweitzer | 17 December 2012, 14:57:18 UTC | Refactor code to only rely on the call graph for data This allows more precise resolution. Right now, disable callgrind output, it needs to be rewritten | 17 December 2012, 14:57:18 UTC |
ef36772 | Pierre Schweitzer | 17 December 2012, 14:07:29 UTC | Display basic information for the moment It is properly handled by kcachegrind! | 17 December 2012, 14:07:29 UTC |
55e76c2 | Pierre Schweitzer | 17 December 2012, 13:56:39 UTC | Complete implementation by adding file lines support | 17 December 2012, 13:56:39 UTC |
d88f6fc | Pierre Schweitzer | 17 December 2012, 13:49:10 UTC | Add safety asserts | 17 December 2012, 13:49:10 UTC |
94d18dc | Pierre Schweitzer | 17 December 2012, 13:47:55 UTC | Initialize callgrind support implementation Add support for filename | 17 December 2012, 13:47:55 UTC |
d205f1d | Pierre Schweitzer | 17 December 2012, 13:21:36 UTC | Stop reimplementing the wheel! | 17 December 2012, 13:21:36 UTC |
7f6a293 | Pierre Schweitzer | 17 December 2012, 13:17:18 UTC | Do not profile the profiler! | 17 December 2012, 13:17:18 UTC |
7e26a09 | Pierre Schweitzer | 17 December 2012, 13:11:50 UTC | Modify the example application to display args it receives | 17 December 2012, 13:11:50 UTC |
2dcb327 | Pierre Schweitzer | 17 December 2012, 13:11:11 UTC | Handle args that are directed to the profiler and not to the main application They are handled by profiler and never seen by the application | 17 December 2012, 13:11:11 UTC |
6df2651 | Pierre Schweitzer | 14 December 2012, 10:37:43 UTC | Complexify example | 14 December 2012, 10:37:43 UTC |
2b0adb9 | Pierre Schweitzer | 14 December 2012, 10:37:22 UTC | Properly count calls, especially for recursive calls | 14 December 2012, 10:37:22 UTC |
bb13af3 | Pierre Schweitzer | 14 December 2012, 09:37:00 UTC | Fix yet another bug with recursive calls | 14 December 2012, 09:37:00 UTC |
3daa40d | Pierre Schweitzer | 13 December 2012, 19:25:18 UTC | Space output | 13 December 2012, 19:25:18 UTC |
498481d | Pierre Schweitzer | 13 December 2012, 19:24:34 UTC | Complexify the example | 13 December 2012, 19:24:34 UTC |
abdeb8c | Pierre Schweitzer | 13 December 2012, 19:24:11 UTC | Fix a bug in recursive functions handling (which was not working) Fix insertions in the call graph Fix level jumping in case we had already inserted the function. This has to be done! Except for recursive call. | 13 December 2012, 19:24:11 UTC |
bf7be32 | Pierre Schweitzer | 13 December 2012, 13:54:22 UTC | Remove the function entry when it's done running | 13 December 2012, 13:54:22 UTC |
5d051c5 | Pierre Schweitzer | 13 December 2012, 13:12:17 UTC | Use clock ticks to mesure time | 13 December 2012, 13:12:17 UTC |
74a8bd6 | Pierre Schweitzer | 13 December 2012, 12:38:55 UTC | Add a .gitignore file | 13 December 2012, 12:38:55 UTC |
195d3bb | Pierre Schweitzer | 13 December 2012, 10:46:07 UTC | Simplify a bit | 13 December 2012, 10:46:07 UTC |
150cd7c | Pierre Schweitzer | 13 December 2012, 10:33:31 UTC | Fix a few bugs in call graph Display call graph at the end of execution Free used memory | 13 December 2012, 10:33:31 UTC |
2145568 | Pierre Schweitzer | 13 December 2012, 10:07:34 UTC | Add support for call graphs | 13 December 2012, 10:07:34 UTC |
fe1de99 | Pierre Schweitzer | 13 December 2012, 08:36:35 UTC | Add a function to ask for max and fix it | 13 December 2012, 08:36:35 UTC |
35ce754 | Pierre Schweitzer | 12 December 2012, 21:36:13 UTC | Add initial code. This for the moment produces a rather simple profiling output | 12 December 2012, 21:36:13 UTC |
d28151e | Pierre Schweitzer | 12 December 2012, 21:34:39 UTC | Initial commit | 12 December 2012, 21:34:39 UTC |