Abstract:
According to an aspect of an embodiment, an evaluation device for evaluating a target program is provided by calculating a first parameter showing an impact size of a target module of the target program on the outside of the target module, based on an execution log of the target program and calculating a second parameter that is a value related to a power consumption by executing the target module. An evaluator evaluates the target module based on the first and second parameters and outputs an evaluation result.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2007-18052 filed on Jan. 29, 2007, the entire contents of which are incorporated herein by reference. 
       BACKGROUND 
     Field 
       [0002]    The embodiments relate to an evaluation program for a program that evaluates a program, an evaluation device for a program, and an evaluation method for a program. 
       SUMMARY 
       [0003]    According to an aspect of an embodiment, an evaluation device for evaluating an evaluation target program, the evaluation device for a program including a first calculation section to calculate a first parameter that is a value to show the impact size of a target module that is a module in the evaluation target program on the outside of the target module based on an execution log of the evaluation target program; a second calculation section that calculates a second parameter that is a value related to a power consumption by executing the target module, and an evaluation section that evaluates the target module based on the first and second parameters and outputs the evaluation result. 
         [0004]    These together with other aspects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]      FIG. 1  illustrates a block diagram to show one example of the configuration of a program evaluation device of embodiment 1; 
           [0006]      FIG. 2  illustrates a table to show one example of the external variable information table of embodiment 1; 
           [0007]      FIG. 3  illustrates a figure to show one example of the execution log of embodiment 1; 
           [0008]      FIG. 4  illustrates a Problem Analysis Diagram (PAD) to show one example of the external impact calculation of embodiment 1; 
           [0009]      FIG. 5  illustrates a conceptual diagram to show one example of the external impact calculation based upon an example execution log according to embodiment 1; 
           [0010]      FIG. 6  illustrates a figure to show one example of power efficiency calculation result of module A according to embodiment 1; 
           [0011]      FIG. 7  illustrates a figure to show one example of power efficiency calculation result of module B according to embodiment 1; 
           [0012]      FIG. 8  illustrates a figure to show one example of the power profile of embodiment 1; 
           [0013]      FIG. 9  illustrates a block diagram to show one example of the configuration of the program evaluation device of embodiment 2; 
           [0014]      FIG. 10  illustrates a PAD to show one example of the operation of the external variable extraction of embodiment 2; 
           [0015]      FIG. 11  illustrates a PAD to show one example of the operation of the external variable registration of embodiment 2; 
           [0016]      FIG. 12  illustrates a table to show one example of the external impact table of embodiment 3; 
           [0017]      FIG. 13  illustrates a PAD to show one example of the operation of the external impact calculation of embodiment 3; 
           [0018]      FIG. 14  illustrates a PAD to show one example of the operation of the external impact calculation of embodiment 4; 
           [0019]      FIG. 15  illustrates a figure to show one example of power efficiency calculation result of module B of embodiment 4; 
           [0020]      FIG. 16  illustrates a block diagram to show one example of the configuration of the program evaluation device of embodiment 5; 
           [0021]      FIG. 17  illustrates a figure to show one example of the execution log output by a conventional debugger; 
           [0022]      FIG. 18  illustrates a figure to show one example of the execution log output by the debugger of embodiment 5. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0023]    There are preferred embodiments of the present invention explained in the following with reference to the accompanying drawings. 
       Embodiment 1 
       [0024]    In the present embodiment, a program evaluation device (an evaluation device for a program) that calculates the power efficiency of each module in the evaluation target program, which is a program to be a target for evaluation, is explained. 
         [0025]      FIG. 1  illustrates a block diagram to show one example of the configuration of the program evaluation device of the present embodiment. This program evaluation device is realized by an information processor (computer or computing device or programmed controller). In addition, this program evaluation device comprises an external impact calculation section  13  that is realized in the control section of the information processor, power calculation section  14 , power efficiency calculation section  15 , external variable information storage  21  that is realized in the storage of the information processor, execution log storage  22 , external impact storage  23 , power information storage  24 , and power profile storage  25 . 
         [0026]    Overview of the operation of the program evaluation device of the present embodiment. 
         [0027]    (S 13 ) External impact calculation: the external impact calculation section  13  calculates the external impact (the first parameter) of the target module based on the external variable information table of the target module saved in the external variable information storage  21  and the execution log of the target module saved in the execution log  22 . Then, the external impact calculation section  13  is saved in the external impact information storage  23  as external impact information. 
         [0028]    (S 14 ) Power calculation: the power calculation section  14  calculates the power consumption (the second parameter) of the target module based on the power consumption per previously set instruction type and the execution log saved in the execution log storage  22 . Then the power calculation section  14  saves it in the power information storage  24  as power information. 
         [0029]    (S 15 ) Power efficiency calculation: the power efficiency calculation section  15  calculates the power efficiency (evaluation results) of the target module based on the external impact information saved in the external impact information storage  23  and the power information saved in the power information storage  24 . Then, the power efficiency calculation section  15  saves it in the power profile storage  25  as a power profile. 
         [0030]    Explanation of the external impact calculation 
         [0031]    The external variable information table of the target module is information used to determine whether the variable is an external variable or not, and is previously set based on any criteria, for example, a specification of the evaluation target program. In one example embodiment, the internal variable can refer to the variable used only in the target module. In addition, in the example embodiment, the external variable can refer to a variable other than the internal variable (in this case a variable used outside of the target module). 
         [0032]      FIG. 2  illustrates a table to show one example of the external variable information table of the present embodiment. In the external information table of one module, a module name as well as a variable name, variable type and address range are recorded per variable in the module. As variable types, there is an external variable or an internal variable. This example is about the external variable information table of module func 1 . According to this external variable information table, a variable ‘a’ is determined as an external variable when the reference destination (target address) is within the address range, a variable ‘b’ is determined as an internal variable, and a return value is determined as an external variable. 
         [0033]    The execution log of the evaluation target program is previously generated by an external debugger and is saved in the execution log storage  22 .  FIG. 3  illustrates a figure to show one example of the execution log of the present embodiment. To this execution log, the cycle number and execution instruction are recorded. In addition, it is also possible that the program evaluation device comprises a debugger and the debugger creates the execution log of the evaluation target and saves it in the execution log storage  22 . 
         [0034]    The external impact is calculated per module. A given external impact is applied to a read or write outside of the module such as the load instruction and store instruction of the external variable. In the present embodiment, for example, an external impact is added to only a write to the external module. The external impact calculation section  13  initializes the external impact per module to 0 before the external impact calculation. 
         [0035]      FIG. 4  illustrates a PAD to show one example of the external impact calculation of the present embodiment. A PAD (Problem Analysis Diagram) is a figure to show a flow of the program similarly to a flow chart. The symbol of processing (functions) S 41  means repetition and repeats the processing of the symbols (functions) to the right up to the given condition. The symbol of processing S 42  means selection, for example, module instruction selection, and advances to the processing of the right side symbols of corresponding conditions. The symbol of processing S 43  means normal processing and advances to the processing of the lower symbols after execution. When there are no lower symbols, the repetition procession is repeated. 
         [0036]    (S 41 ) The external impact calculation section  13  reads the execution instruction per cycle from the execution log, executes the processing S 42  and repeats the processing S 42  until it finishes reading the execution log. 
         [0037]    (S 42 ) The external impact calculation section  13  determines the read execution instruction. 
         [0038]    (S 43 ) When the execution instruction is the call instruction (S 42 , call instruction), the external impact calculation section  13  switches the target module with the call destination module as well as the external variable information table with that of the target module to refer to. 
         [0039]    (S 44 ) When the execution instruction is the store instruction (S 42 , store instruction), the external impact calculation section  13  determines whether the variable of the store instruction is an external variable or not based on the external variable information table. 
         [0040]    (S 45 ) When the variable of the store instruction is an external variable (S 44 , yes), the external impact calculation section  13  adds 1 to the external impact of the target module. 
         [0041]    (S 46 ) When the execution instruction is a write of the return value to the register (S 42 , a write of the return value to the register), the external impact calculation section  13  adds 1 to the external impact of the target module. 
         [0042]    (S 47 ) When the execution instruction is the return instruction (S 42 , return instruction), the external impact calculation section  13  switches the target module with the call source module as well as the external variable information table with that of the target module to refer to. 
         [0043]      FIG. 5  illustrates a conceptual diagram to show one example of the external impact calculation based upon an example execution log according to an embodiment. The execution log in the figure is similar to that in  FIG. 3 , and means the execution of the module func 1 . First of all, the external impact of the module func 1  is initialized to 0. Because the cycle  1001  is a call (call instruction) of the module func 1 , the target module becomes the module func 1 . Because the cycle  1002  is a write (store instruction) to the external variable, 1 is added to the external impact of the module func 1 . Because the cycle  1003  is a write (store instruction) to the internal variable, the external impact to the module func 1  is unchanged. Because the cycle  1004  is a write of the return value to the register, 1 is added to the external impact of the module func 1 . Because the cycle  1005  is the return instruction, the target module becomes the call source module. As a result, the external impact of the module func 1  becomes 2. 
         [0044]    In addition, in the present embodiment, it was described that the external impact was added only to a write to outside of the module, though it is also possible to add the external impact to a read from the outside of the module depending on the module function, for example, when an input to the module is important. 
         [0045]    According to the above-mentioned external calculation, the processing amount of instructions that are necessary for the evaluation target program can be acquired. 
         [0046]    Explanation of the power calculation 
         [0047]    The power calculation section  14  calculates the power consumption per module based on the power consumption and execution log per given instruction type. In this embodiment, the power calculation section  14  totals the power consumption in the module, because the power consumption of 1 operation instruction in the execution log is 1. 
         [0048]    According to the above-mentioned power calculation, power consumption of each module in the evaluation target program can be acquired. 
         [0049]    Explanation of power efficiency calculation 
         [0050]    The power efficiency calculation section  15  calculates the power efficiency per module from the external impact and power consumption per module and profiles the power efficiency per module altogether. Here, the power efficiency of the target module is defined as follows: 
         [0051]    Power efficiency of target module=(External impact of target module)÷(Power consumption of target module) 
         [0052]    Here, the concrete example of the power efficiency calculation result is described. The evaluation target program here is a module that has a function to increment variable “*count” after acquiring lock variable ‘*lock’ under the multi-thread execution environment. In addition, here, modules A and B are prepared as two types of evaluation target programs having the same function. 
         [0053]      FIG. 6  illustrates a figure to show one example of the power efficiency calculation result of the module A according to the present embodiment. This figure shows the source of the module A line by line, and shows the external impact and power consumption per line. The module A is a module that realized the above-mentioned function by the polling method. Here, it is assumed that the module A continuously tried to acquire lock and acquired the lock on the tenth try. 
         [0054]      FIG. 7  illustrates a figure to show one example of the power efficiency calculation result of the module B of the present embodiment. This figure shows the source of the module B line by line, and shows the external impact and power consumption per line. The module B is a module that realized the above-mentioned function by the interrupt method. Here, the module B sleeps at wait_for_interrupt( ) after it fails in lock acquisition, wakes up by an interrupt that notifies unlocking, and it acquires the lock. 
         [0055]    In the modules A and B, the external impact is only a write to the external variable *count, and the external impact calculation section  13  calculates the external impact by counting the number of writes to external variable *count. The local variable ‘val’ and lock variable *lock are internal variables, and they have nothing to do with the external impact. In addition, the power calculation section  14  regards the power consumption for 1 calculation instruction as 1. 
         [0056]    External impacts of modules A and B become 1 by the external impact calculation. By power calculation, the power consumption of the module A becomes 41 and the power consumption of the module B becomes 8. The power efficiency of the module A becomes 1/41=2.4% by the power efficiency calculation, and the power efficiency of the module B becomes ⅛=12.5%. In addition, it can be determined that the power efficiency of the module B is larger than the power efficiency of the module A. 
         [0057]    In addition, the power efficiency calculation section  15  can compare plural modules as mentioned above in terms of external impact, power consumption and power efficiency, and output the comparison results. 
         [0058]      FIG. 8  illustrates a figure to show one example of the power profile of the present embodiment. This figure shows the power profile of the above-mentioned module B. Values of such as module name, external impact, power consumption and power efficiency are recorded in the power profile. In the power profile, neither the external impact nor power consumption has to be recorded, but only the power efficiency may be recorded. 
         [0059]    With the above-mentioned external impact calculation, it is possible to calculate the size of the external impact per unit power consumption as power efficiency for each target module of a target program and based thereon the evaluation target program can be evaluated and compared by the power efficiency. With the power efficiency, it is possible to determine whether the power consumption of a target module and/or target program is effectively used in relation to other modules, other programs, other information processor components, or computing environment external to the target module and/or target program, or any combinations thereof, or to determine whether the power consumption of the target module and/or target program is effectively used to the outside of the target program and/or to the outside of the target module (as the case may be). 
       Embodiment 2 
       [0060]    In the present embodiment, a program evaluation device that extracts the external variable from the evaluation target program is described. 
         [0061]      FIG. 9  illustrates a block diagram to show one example of the configuration of the program evaluation device of the present embodiment is shown. In this figure, the same reference numbers as  FIG. 1  refer to the same or equivalent objects in  FIG. 1 , and the explanation about them is omitted here. Comparing with  FIG. 1 , this  FIG. 9  comprises an external variable extraction section  31  that is realized in the control section of the information processor, a program storage section  40  that is realized in the storage section of the information processor, an external impact calculation section  33  instead of the external impact calculation section  13 , and the external variable information storage section  41  instead of the external variable information storage  21 . 
         [0062]    Overview of the operation of the program evaluation device of the present embodiment. 
         [0063]    (S 11 ) The external variable extraction: the external variable extraction  31  extracts an external variable from the source of the evaluation target program saved in the program storage  40 , and saves it in the external variable information storage  41  as an external variable information table. 
         [0064]    (S 13 ) The external impact calculation: the external impact calculation section  33  calculates the external impact based on the external variable information table saved in the external variable information storage  41  and the execution log of the evaluation target program saved in the execution log storage  22 , and saves it in the external impact information storage  23  as external impact information. 
         [0065]    It is similar to embodiment 1 after processing S 14 . 
         [0066]    Explanation of the external variable extraction 
         [0067]    The external variable extraction can be realized, for example, by using the source analysis technique of the compiler. In addition, the external variable extraction is performed per module in the evaluation target program. For example, an internal variable can be a variable used only in the module. For example, an external variable can be a variable used outside of the module. In the present embodiment, the evaluation target program is a C program source. 
         [0068]      FIG. 10  illustrates a PAD that shows one example of operation the external variable extraction of the present embodiment. 
         [0069]    (S 21 ) The external variable extraction section  31  reads C program source per section, processes S 22 , and repeats processing S 22  until it finishes reading the C program source. 
         [0070]    (S 22 ) The external variable extraction section  31  performs configuration analysis of the C program source, extracts the variable, makes it as a target variable, and shifts to the processing S 23 . 
         [0071]    (S 23 ) The external variable extraction section  31  determines the target variable. 
         [0072]    (S 31 ) When the target variable is a global variable or a static variable (S 23 , global variable or static variable), the external variable extraction section  31  determines whether the target variable can be referred to from another module. 
         [0073]    (S 32 ) When the target module can be referred to from another module (S 31 , yes), the external variable extraction section  31  determines whether the target variable is a variable for synchronization (lock, signal). 
         [0074]    (S 33 ) When the target variable is a variable for synchronization (S 32 , no), the external variable extraction section  31  performs the external variable registration. 
         [0075]    (S 34 ) When the target variable is a variable in a heap area (S 23 , a variable in a heap area), the external variable extraction section  31  determines whether the target variable exists after the return of function or not. 
         [0076]    (S 35 ) When the variable exists after the return of function (S 34 , yes), the external variable extraction section  31  performs the external variable registration. 
         [0077]    (S 36 ) When the address reference destination of the target variable is not a local variable (S 23 , the address reference destination is not a local variable), the external variable extraction section  31  performs the external variable registration of the target variable. 
         [0078]    (S 37 ) When the variable is a return value of a function (S 23 , a return value of a function), the external variable extraction section  31  performs the external variable registration of the target variable. 
         [0079]    According to an aspect of an embodiment, any combination of the described criteria herein, for example, S 31  through  37 , or any other criteria according to application can be used to determine whether a target variable is external or internal. Explanation of the external variable registration 
         [0080]      FIG. 11  illustrates a PAD to show one example of the external variable registration of the present embodiment. 
         [0081]    (S 38 ) The external variable extraction section  31  calculates the range of the address of the target variable. Here, the variable in the stack is described as an offset address from a stack register and a frame pointer. 
         [0082]    (S 39 ) The variable name and address of the target variable are output per module as the external variable information table. 
         [0083]    With the above-mentioned external variable extraction, a variable that impacts outside of a module can be automatically extracted. 
       Embodiment 3 
       [0084]    In the present embodiment, the program evaluation device that calculates the external impact based on the weight per variable is explained. 
         [0085]    The configuration and operation overview of the program evaluation device of the present embodiment are similar to Embodiment 1, however the external impact calculation is different. 
         [0086]    Explanation of the external impact calculation 
         [0087]    The weight of the external impact is set to the external variable saved in the external variable information storage  21  beforehand, and is saved in the external variable information storage  21  as the external impact table. 
         [0088]      FIG. 12  illustrates a table to show one example of the external impact table of the present embodiment. This example is the external impact table of the module func 1 , and the external impact of variable ‘a,’ variable ‘error,’ and return value is set. Since the variable ‘a’ is referred to from others twice, the external impact is set as 2. Because the variable error is an error notification, the external impact is set as 10. The external impact of the return value is set as 1. In addition, it is also possible to set variable types based upon criteria, such as reference frequency, error notification, return value, and to set the external impact per variable type as the external impact table. According to an aspect of an embodiment, the external impact weight can be determined as low, medium, high, or any combinations thereof, according to any application criteria. 
         [0089]      FIG. 13  illustrates PAD to show one example of the operation of the external impact calculation of the present embodiment. In this figure, the same reference numbers as  FIG. 4  refer to the same or equivalent processing in  FIG. 4 , and the explanation about them is omitted here. Comparing with  FIG. 4 , as for this figure, the processing S 51  is executed instead of the processing S 45 , and the processing S 54  is executed instead of the processing S 46 . 
         [0090]    (S 51 ) In the processing S 44 , if the variable of the store instruction is an external variable (S 44 , yes), the external impact calculation section  13  regards the external variable as the target variable and determines whether the external variable is referred to from others or not. 
         [0091]    (S 52 ) When the target variable is referred to from others (S 51 , yes), the external impact calculation section  13  determines whether the target variable is rewritten before being referred to or not. 
         [0092]    (S 53 ) When the target variable is not rewritten before being referred to (S 52 , yes), the external impact calculation section  13  refers to the external impact table and adds the external impact corresponding to the target variable to the external impact of the target module. 
         [0093]    (S 54 ) In the processing S 42 , when the execution instruction is a write to the return value register (S 42 , a write to the return value register), the external impact calculation section  13  regards the external variable as a target variable, and determines whether the target variable is referred to from others or not. 
         [0094]    (S 55 ) When the target variable is referred to from others (S 54 , yes), the external impact calculation section  13  refers to the external impact table and adds the external impact corresponding to the target variable to the external impact of the target module. 
         [0095]    With this external impact calculation, actual impact on the outside can be shown better by giving the external impact according to the weight per variable set beforehand. 
       Embodiment 4 
       [0096]    In the present embodiment, the program evaluation device that uses the call relations between modules is described. 
         [0097]    The configuration and overview of the operation of the program evaluation device of the present embodiment are similar to Embodiment 1, though they are different in the external impact calculation, power calculation and power efficiency calculation. 
         [0098]    Explanation of the external impact calculation 
         [0099]      FIG. 14  illustrates PAD to show one example of the operation of the external impact calculation of the present embodiment. In this figure, the same reference numbers as  FIG. 4  refer to the same or equivalent processing in  FIG. 4 , and the explanation about them is omitted here. In this figure, by comparing with  FIG. 4 , the processing S 61  is executed instead of the processing S 43 , the processing S 62  is executed instead of the processing S 44 , the processing S 65  is executed instead of the processing S 47 . The external impact section  13  initializes the external impact per module before the external impact calculation and initializes the external variable information table list. 
         [0100]    (S 61 ) When the effective instruction is a call instruction (S 42  and call instruction) in processing S 42 , the external impact calculation section  13  adds the external variable information table for the target module to the external variable information table list. 
         [0101]    (S 62 ) In the processing S 42 , when the effective instruction is a store instruction (S 42 , store instruction), the external impact calculation section  13  selects the external variable information table from the external variable information table list one by one, assumes the module of the selected external variable information table as a related module, and performs the processing S 63 . Thereafter, the external impact calculation section  13  repeats the process for all the external variable information tables in the external variable information table list. Here, a related module contains a high-ranking module of the target module in the target module and relating the call. 
         [0102]    (S 63 ) The external impact calculation section  13  determines whether the variable of the store instruction is an external variable of a related module. 
         [0103]    (S 64 ) When the variable of the store instruction is an external value of the related module (S 63 , yes), the external impact calculation section  13  adds 1 to the external impact of the related module. 
         [0104]    (S 65 ) In the processing S 42 , when the effective instruction is a return instruction (S 42 , return instruction), the external impact calculation section  13  deletes the external variable information table for the target module from the external variable information table list. 
         [0105]    In this external impact calculation, the external impact calculation section  13  holds the target module and the external variable information table of the low order hierarchical module (submodule) called by the module as a list. 
         [0106]    As a result, the external impact calculation section  13 , in a similar way to Embodiment 1, calculates the entire external impact including the target module and the low order hierarchical module called by the target module as well as the external impact only of the target module and the external impact only of the low order hierarchical module. 
         [0107]    Explanation of the power calculation 
         [0108]    The power calculation section  14 , in a similar way to the external impact calculation, and in a similar way to Embodiment 1, calculates the power consumption of the entire target module including the target module and the low order hierarchical module called by the target module, as well as the power consumption of only the target module and the power consumption of only the low order hierarchical module. 
         [0109]    Explanation of the power efficiency calculation 
         [0110]    The power efficiency calculation section  15 , from the results of the external impact calculation and power calculation, in a similar way to Embodiment 1, calculates the power efficiency of the entire target module including the target module and the low order hierarchical module called by the target module, as well as the power efficiency of only the target module and the power efficiency of only the low order hierarchical module. 
         [0111]      FIG. 15  illustrates a figure to show one example of the power efficiency calculation result of the module B of the present embodiment. This power efficiency calculation result shows such as external impact, power consumption and power efficiency. These values are calculated regarding the entire target module (Total), only the target module (Self) and only the low order hierarchical module (Child) respectively. 
         [0112]    By this power efficiency calculation, it is possible to detect the case where power is consumed only for the communication between submodules and no substantial work is performed. 
       Embodiment 5 
       [0113]    In the present embodiment, the program evaluation device in which a debugger  12  determines the external variable is explained. 
         [0114]    First of all, the configuration of the program evaluation device of the present embodiment is explained. 
         [0115]      FIG. 16  illustrates a block diagram to show one example of the configuration of the program evaluation device of the present embodiment. In this figure, the same reference numbers as  FIG. 9  refer to the same or equivalent objects in  FIG. 9 , and the explanation about them is omitted here. Comparing with  FIG. 9 , this figure comprises a debugger  52  that is newly realized in the control section of the information processor, external impact calculation section  53  instead of the external impact calculation section  33 , and an execution log storage  62  instead of the execution log storage  22 . 
         [0116]    Explanation of the operation overview of the program evaluation device of the present embodiment 
         [0117]    First of all, the processing S 11  similar to Embodiment 2 is performed. 
         [0118]    (S 12 ) The debugger  52  generates the execution log by executing the evaluation target program saved in the program storage  40 , and performs the execution log generation to be saved in the execution log storage  62 . 
         [0119]    (S 13 ) The external impact calculation section  53  calculates the external impact based on the execution log saved in the execution log storage section  62 , and performs the external impact calculation to be saved in the external impact information storage  23  as external impact information. 
         [0120]    After the processing S 14  is similar to Embodiment 1. 
         [0121]    Explanation of the execution log generation 
         [0122]    When a conventional debugger is applied, it might be necessary to output the target address per write to the memory to the execution log.  FIG. 17  illustrates a figure to show one example of the execution log output from the conventional debugger. To this execution log, a cycle number, instruction address, execution instruction, and target address are recorded per cycle. However, there is a problem that the execution log size could become large and it takes time if all the target addresses are output to the execution log. 
         [0123]    On the other hand, the debugger  52 , counts and records an instruction to the execution log if it is determined that the execution instruction is a read or write of the external variable based on the acquired execution instruction, target address and external variable information table of the external variable information storage  41 . For example, the debugger  52  in this embodiment counts only a write of the external variable. 
         [0124]      FIG. 18  illustrates a figure to show one example of the execution log output from the debugger of the present embodiment. Comparing with the above-mentioned conventional execution log, this execution log records the number of writes to the outside of the module instead of the target address. The size of the execution log can be suppressed by this debugger  52 . 
         [0125]    Explanation of the external impact calculation 
         [0126]    The external impact calculation section  53  performs similar external impact calculation to the embodiment 1, though it records the number of writes to the outside in the execution log, it does not need to determine whether it is an external variable or not by using the external variable information table. 
         [0127]    By this execution log generation and external impact calculation, it is possible to reduce the load of the external impact calculation and improve the efficiency of the entire program evaluation device by the debugger&#39;s detecting the section that impacts the outside of the module. 
         [0128]    In addition, the first calculation corresponds to the external impact calculation in the embodiment. In addition, the second calculation corresponds to the power calculation in the embodiment. In addition, the evaluation corresponds to the power efficiency calculation in the embodiment. In addition, the extraction corresponds to the external variable extraction in the embodiment. In addition, the execution corresponds to the execution log generation in the embodiment. 
         [0129]    In addition, the first calculation section corresponds to the external impact calculation section in the embodiment. In addition, the second calculation section corresponds to the power calculation section in the embodiment. In addition, the evaluation section corresponds to the power efficiency calculation section in the embodiment. In addition, the extraction section corresponds to the external variable extraction section in the embodiment. In addition, the execution of the evaluation target program corresponds to the debugger in the embodiment. 
         [0130]    In addition, the evaluation device for the program of the present embodiment can be easily applied to the information processor, and can improve the performance of the information processor more. Here, for example, a PC (Personal Computer), a server, and a work station, etc. may be the information processor. The embodiments may be implemented in software and/or computing hardware. 
         [0131]    In addition, it is possible to provide the program that executes each operation mentioned above in the computer that comprises the evaluation device for the program as an evaluation program of the program. The above-mentioned program can be executed by the computer that comprises the evaluation device for the program by storing the program to the computer readable media including computer readable recording media and communication media. Here, as recording media that are readable by the above-mentioned computer, internal storages, such as ROM and RAM internally mounted in the computer, portable storage media such as CD-ROM, flexible disk, DVD disk, optical disk and IC card, data bases that retain computer programs, or another computer, its database, are included. Communication media as computer readable media include transmission media (carrier waves) on lines. 
         [0132]    The many features and advantages of the embodiments are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the embodiments that fall within the true spirit and scope thereof. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the inventive embodiments to the exact construction and operation illustrated and described, and accordingly all suitable modifications and equivalents may be resorted to, falling within the scope thereof.