Changes between Version 3 and Version 4 of GROUP_APP_PERFORMANCE_R2


Ignore:
Timestamp:
05/26/09 13:05:37 (16 years ago)
Author:
gogov
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GROUP_APP_PERFORMANCE_R2

    v3 v4  
    44 
    55= Analysis = 
    6 ^(Give as much as possible of the needed information for designing and implementing the task in the following sections.)^ 
    7  
    86== Overview == 
    9 ^(Provide a brief overview of the whole task in its first revision. Stick to the current revision of the task, but keep an eye to the whole task progress, and stay alert for possible smells.)^ 
     7The goal of this task is to tweak our Profiler, and do a final try on existing profilers which can work with Sophie2 and produce useful results. 
    108 
    119== Task requirements == 
    12 ^(List the necessary requirements that the task must fulfill.)^ 
     10 * Find a way to measure real method execution count (non-statistical). 
     11  * Spend some more time with NetBeans Profiler and try to make it work with Sophie. 
     12  * See if using any other existing profiler makes sense. 
     13  * Actually, these profilers can turn out to have more features which could prove useful. 
     14  * If none of the above works, try to incorporate bytecode instrumentation in our Profiler. This could waste a lot of time so do it only if really needed. 
     15  * Consider implementing hit() behavior in the Profiler. 
     16   * This means inserting a hit() statement in every method for which you want to get the real hit count. 
     17    * This way you get the real hit count for a method, 
     18    * and also you can get the last two elements in the stack trace and thus count how much times a given method A() has invoked another method B() in its body like: 
     19{{{ 
     20methodA() { 
     21    for(int i = 0; i < 1000000000; ++i) { 
     22        methodB(); 
     23    } 
     24} 
     25}}} 
     26     These could possibly be optimized in various ways like using findOne(), findAll() if used for lists, using some HashMaps etc. 
     27 * Propose concrete optimization points in Sophie2 code and optimize them if possible 
     28  * by either doing quick hacks 
     29  * or proposing serious design changes (like the Aspects) and try to implement them if there's enough time. 
     30 
     31 * Use any profiler outputs available to gather data which could be useful for the above goals. 
    1332 
    1433== Task result == 
    15 ^(List the end product of the task (for example "Source code", "Wiki page", etc.))^ 
     34 * Working way to measure real hit count 
     35 * Optimization proposals 
     36 * Hopefully, implemented optimizations 
     37 * Most probably, new functionality in our Profiler. 
    1638 
    1739== Implementation idea == 
    18 ^(Provide some rough implementation idea(s).)^ 
     40 * Implement hit() inside our Profiler and count results in some map. 
     41 * Look at JVMPI if you're going to do bytecode instrumentation. 
     42 * Find a NetBeans guru and ask him questions. 
    1943 
    2044== Related == 
    21 ^(Add links to related tasks that could be useful or helpful.)^ 
     45 * [wiki:GROUP_APP_PERFORMANCE_R0] 
     46 * [wiki:GROUP_APP_PERFORMANCE_R1] 
     47 * [wiki:GROUP_PRO_LIB_PERFORMANCE_R0] 
    2248 
    2349== How to demo == 
    24 ^(Provide instructions for demonstration of the task.)^ 
     50 * show upgraded reports from the upgraded Profiler 
     51 * show optimization proposals and/or concrete optimization results 
    2552 
    2653= Design =