Changeset 142


Ignore:
Timestamp:
May 21, 2008, 12:41:23 PM (11 years ago)
Author:
ksherdy
Message:

Added CALC_AVG preprocessor directive. Calculate source file size. Modify timing locations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/markup_stats.cxx

    r135 r142  
    105105inline void ParsingEngine<C>::Comment_action(unsigned char * item, int lgth) {
    106106        comment_count +=1;
    107         comment_length += lgth;
     107       
     108        #if defined(CALC_AVG)
     109                comment_length += lgth;
     110        #endif
    108111}
    109112
     
    119122inline void ParsingEngine<C>::CDATA_end_action(unsigned char * CDATA_end_ptr) {
    120123        CDATA_end_count +=1;
    121         CDATA_length += AbsPos() - CDATA_start_pos;
     124       
     125        #if defined(CALC_AVG)
     126                CDATA_length += AbsPos() - CDATA_start_pos;
     127        #endif
    122128}
    123129
     
    126132inline void ParsingEngine<C>::PI_action(unsigned char * item, int lgth) {
    127133        PI_count +=1;
    128         PI_length += lgth;
     134       
     135        #if defined(CALC_AVG)
     136                PI_length += lgth;
     137        #endif
    129138}
    130139
     
    133142inline void ParsingEngine<C>::EmptyElement_action(unsigned char * item, int lgth) {
    134143        empty_elem_count +=1;
    135         empty_elem_length += lgth;
     144       
     145        #if defined(CALC_AVG)
     146                empty_elem_length += lgth;
     147        #endif
    136148}
    137149
     
    140152inline void ParsingEngine<C>::StartTag_action(unsigned char * item, int lgth) {
    141153        start_tag_count +=1;
    142         start_tag_length += lgth;
     154       
     155        #if defined(CALC_AVG)
     156                start_tag_length += lgth;
     157        #endif
     158       
    143159        nesting_depth += 1;
    144160        if (nesting_depth > max_nesting_depth) max_nesting_depth = nesting_depth;
     
    150166inline void ParsingEngine<C>::EndTag_action(unsigned char * item, int lgth) {
    151167        end_tag_count +=1;
    152         end_tag_length += lgth;
     168       
     169        #if defined(CALC_AVG)
     170                end_tag_length += lgth;
     171        #endif
     172       
    153173        nesting_depth -= 1;
    154174}
     
    158178inline void ParsingEngine<C>::Error_action(unsigned char * item, int lgth) {
    159179        error_item_count +=1;
    160         error_item_length += lgth;
     180       
     181        #if defined(CALC_AVG)
     182                error_item_length += lgth;
     183        #endif
     184       
    161185        fprintf(stderr, "Error: illegal markup at positions %i of length %i.\n", AbsPos()-lgth, lgth);
    162186        cerr << string((char *) item, lgth) << endl;
     
    167191inline void ParsingEngine<C>::Text_action(unsigned char * item, int lgth) {
    168192        text_item_count +=1;
    169         text_item_length += lgth;
     193       
     194        #if defined(CALC_AVG)
     195                text_item_length += lgth;
     196        #endif
    170197}
    171198
     
    173200inline void ParsingEngine<C>::Reference_action(unsigned char * item, int lgth) {
    174201        reference_count +=1;
    175         reference_length += lgth;
     202       
     203        #if defined(CALC_AVG)
     204                reference_length += lgth;
     205        #endif
    176206}
    177207
     
    215245                                 unsigned char * val, int val_lgth) {
    216246        total_attribute_count+=1;
    217         total_att_name_length += name_lgth;
    218         total_att_value_length += val_lgth;
     247       
     248        #if defined(CALC_AVG)
     249                total_att_name_length += name_lgth;
     250                total_att_value_length += val_lgth;
     251        #endif
    219252}
    220253
     
    225258                             unsigned char * URI, int URI_lgth) {
    226259        namespace_count+=1;
    227         total_namespace_name_length += name_lgth;
    228         total_namespace_URI_length += URI_lgth;
     260       
     261        #if defined(CALC_AVG)
     262                total_namespace_name_length += name_lgth;
     263                total_namespace_URI_length += URI_lgth;
     264        #endif
    229265}
    230266
     
    306342                exit(-1);
    307343        }
    308         char * filename = argv[1];
     344       
     345        char * src_filename = argv[1];
     346        char * cmdline = new char[strlen(argv[0]) + strlen(argv[1]) +1 +1];
     347        strcat(cmdline, argv[0]);
     348        strcat(cmdline," ");
     349        strcat(cmdline,argv[1]);
    309350
    310351        #ifdef PAPI
     
    313354                int cal_size = 1000;
    314355                code_clocker = new CC(Events,NUM_EVENTS,cal_size);
    315                 code_clocker->cc_set_cmd(argv[0]);
    316                 code_clocker->cc_set_param("Mhz","2127.997");
    317         #endif
    318 
     356                code_clocker->cc_set_cmd(cmdline);
     357        #endif
     358
     359        // Read the entire file into a memory buffer   
     360        FILE * src_file;
     361        struct stat fileinfo;
     362        int src_filesize;
     363
     364        // open file and fstat 
     365        src_file = fopen ( src_filename , "rb" );
     366        if(fstat(fileno(src_file), &fileinfo)!=0) {
     367                fprintf(stderr, "Cannot fstat '%s'. Terminating the process ...\n", src_filename);
     368                exit(-1);
     369        }
     370       
     371        src_filesize = fileinfo.st_size;
     372       
     373        // close file
     374        fclose (src_file);
     375       
    319376        for (int run = 0; run < REPEAT_RUNS; run++) {
    320 //      #ifdef PAPI
    321 //              code_clocker->cc_start_interval();
    322 //      #endif
    323 
    324         parser = Parser_Interface::ParserFactory(filename);
    325        
    326         /*             
    327         if (!parser->has_ByteOrderMark()) printf("No ");
    328         printf("Byte Order Mark found.\n");
    329 
    330         if (parser->get_version() == XML_1_0) printf("XML version 1.0 declared.\n");
    331         else if (parser->get_version() == XML_1_1) printf("XML version 1.1 declared.\n");
    332         else printf ("XML version 1.0 implied by default.\n");
    333         if (parser->has_EncodingDecl()) {
    334                 printf("XML encoding declared:  %s\n", parser->get_Encoding());
     377
     378                #ifdef PAPI
     379                        code_clocker->cc_start_interval();
     380                #endif
     381
     382                parser = Parser_Interface::ParserFactory(src_filename);
     383       
     384                /*             
     385                if (!parser->has_ByteOrderMark()) printf("No ");
     386                printf("Byte Order Mark found.\n");
     387       
     388                if (parser->get_version() == XML_1_0) printf("XML version 1.0 declared.\n");
     389                else if (parser->get_version() == XML_1_1) printf("XML version 1.1 declared.\n");
     390                else printf ("XML version 1.0 implied by default.\n");
     391                if (parser->has_EncodingDecl()) {
     392                        printf("XML encoding declared:  %s\n", parser->get_Encoding());
     393                }
     394                if (parser->standalone_status() == Standalone_yes)
     395                        printf("XML standalone = yes declared.\n");
     396                else if (parser->standalone_status() == Standalone_no)
     397                        printf("XML standalone = no declared.\n");
     398                else printf ("XML standalone = no by default.\n");
     399                */
     400
     401                #ifdef PAPI
     402                        code_clocker->cc_start_interval();
     403                #endif
     404               
     405                parser->Parse_Prolog();
     406                parser->Parse_DocumentContent();
     407
     408                #ifdef PAPI
     409                        int elems = src_filesize;
     410                        code_clocker->cc_end_interval(elems);
     411                #endif
     412
     413                parser->~Parser_Interface();
     414                printf("Run %i complete.\n", run);
     415
    335416        }
    336         if (parser->standalone_status() == Standalone_yes)
    337                 printf("XML standalone = yes declared.\n");
    338         else if (parser->standalone_status() == Standalone_no)
    339                 printf("XML standalone = no declared.\n");
    340         else printf ("XML standalone = no by default.\n");
    341         */
    342        
    343         parser->Parse_Prolog();
    344 
    345         parser->Parse_DocumentContent();
    346 
    347         parser->~Parser_Interface();
    348         printf("Run %i complete.\n", run);
    349 //      #ifdef PAPI
    350 //              int elems = 0;
    351 //              code_clocker->cc_end_interval(100);
    352 //      #endif
    353        
    354        
    355         }
    356417
    357418        #ifdef PAPI
     419                code_clocker->cc_write_xml_file();
    358420                code_clocker->cc_display();
    359                 code_clocker->cc_write_xml_file();
    360                 code_clocker->cc_write_csv_file();
    361421                delete code_clocker;
    362422        #endif 
Note: See TracChangeset for help on using the changeset viewer.