Changeset 92 in dev for BasicCompiler_Common/Diagnose.cpp
- Timestamp:
- Apr 8, 2007, 2:07:31 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/Diagnose.cpp
r91 r92 11 11 char temporary[8192]; 12 12 13 // グローバル / ローカル コード領域のサイズを調べる 14 extern int obp; 15 extern int GlobalOpBufferSize; 16 sprintf(temporary, "%d", GlobalOpBufferSize/1024 ); 17 Smoothie::Logger::Put( (string)"グローバル領域のコードサイズ: " + temporary + "KB" ); 18 sprintf(temporary, "%d", (obp-GlobalOpBufferSize)/1024 ); 19 Smoothie::Logger::Put( (string)"ローカル領域のコードサイズ: " + temporary + "KB" ); 13 { 14 /////////////////////////////////////////////////////////////////// 15 // グローバル / ローカル コード領域のサイズを調べる 16 /////////////////////////////////////////////////////////////////// 17 18 extern int obp; 19 extern int GlobalOpBufferSize; 20 sprintf(temporary, "%d", GlobalOpBufferSize/1024 ); 21 Smoothie::Logger::Put( (string)"グローバル領域のコードサイズ: " + temporary + "KB" ); 22 sprintf(temporary, "%d", (obp-GlobalOpBufferSize)/1024 ); 23 Smoothie::Logger::Put( (string)"ローカル領域のコードサイズ: " + temporary + "KB" ); 24 sprintf(temporary, "%d", obp/1024 ); 25 Smoothie::Logger::Put( (string)"コードサイズ総量: " + temporary + "KB" ); 26 } 20 27 21 28 { 29 /////////////////////////////////////////////////////////////////// 22 30 // グローバル関数、クラスメソッドのサイズを調べる 31 /////////////////////////////////////////////////////////////////// 32 23 33 int codeSizeOfGlobalProc = 0; 24 34 int codeSizeOfClassMethod = 0; … … 44 54 sprintf(temporary, "%d", codeSizeOfClassMethod/1024 ); 45 55 Smoothie::Logger::Put( (string)"クラスメソッドのコードサイズ総量: " + temporary + "KB" ); 46 47 Smoothie::Logger::Put( "\n\n" );48 56 } 49 57 50 58 { 59 /////////////////////////////////////////////////////////////////// 60 // Enumに必要なのコードサイズを調べる 61 /////////////////////////////////////////////////////////////////// 62 int codeSizeOfEnum = 0; 63 64 // イテレータをリセット 65 extern CDBClass *pobj_DBClass; 66 pobj_DBClass->Iterator_Reset(); 67 68 while( pobj_DBClass->Iterator_HasNext() ){ 69 int codeSizeOfClass = 0; 70 71 CClass &objClass = *pobj_DBClass->Iterator_GetNext(); 72 73 if( !objClass.IsEnum() ){ 74 // 列挙型以外は無視 75 continue; 76 } 77 78 // 動的メソッド 79 foreach( const CMethod &method, objClass.GetMethods() ){ 80 if( method.pUserProc->IsCompiled() ){ 81 codeSizeOfClass += method.pUserProc->GetCodeSize(); 82 } 83 } 84 85 // 静的メソッド 86 foreach( const CMethod &method, objClass.GetStaticMethods() ){ 87 codeSizeOfClass += method.pUserProc->GetCodeSize(); 88 } 89 90 codeSizeOfEnum += codeSizeOfClass; 91 } 92 93 sprintf(temporary, "%d", codeSizeOfEnum/1024 ); 94 Smoothie::Logger::Put( (string)"Enumのコードサイズ総量: " + temporary + "KB" ); 95 } 96 97 Smoothie::Logger::Put( "\n\n" ); 98 99 { 100 /////////////////////////////////////////////////////////////////// 51 101 // クラスのサイズを調べる 102 /////////////////////////////////////////////////////////////////// 52 103 53 104 // イテレータをリセット … … 82 133 } 83 134 } 84 85 135 } 86 136 }
Note:
See TracChangeset
for help on using the changeset viewer.