èšäºã¯ãã©ã€ããããžã§ã¯ããã¹ããŒããŠã³ïŒãŸãã¯ã¹ããŒããŠã³ïŒããªãã£ããããµãŒãããŒãã£è£œåã調æ»ããããã®åºçºç¹ã«ãªããªãããã«ããã®ã«åœ¹ç«ã¡ãŸãã
ããšãã°ãããªãã®ä»äºã¯ããSamopisnayaã·ã¹ãã 3.14ãã®å
éšã§äœãèµ·ãã£ãŠããã®ããç解ããã¯ã©ã€ã¢ã³ãããšã«100ã¡ã¬ãã€ãã®RAMãæ¶è²»ããªãããã«ããããšã§ãã
ç 究ããã°ã©ã ã«ã€ããŠ
WebAsyst Shop-Script- LLC Artikusã®ã¡ã³ããŒã«ãã2åç®ã®è©Šã¿ã æåã®è©Šã¿ã¯ç©Žã§ãã£ã±ãã§ãä»æ¥ã®Shop-Script Premiumã«å€ãã®åé¡ããããããŸããã
å³å¯ã«èšãã°ãWebAsystã¯ã¡ã¢åž³ãã«ã¬ã³ããŒããããžã§ã¯ããããŒãžã£ãŒãªã©ã®ããã°ã©ã ã®è€åäœã§ãããã€ã³ã¿ãŒãããéçºãããžãã¹ã®åæ¥ã§ã¯ãªã人ã«ãšã£ãŠã¯ããããã®ãœãªã¥ãŒã·ã§ã³ã¯èå³æ·±ããã®ã§ã¯ãããŸããïŒããŒã¹ãã£ã³ãïŒã
圌ãã®è©Šã¿ãæåãåãããã©ããã«ããããããç§ã¯ããèšãããšãã§ããŸããç§ãã¡ã¯ã¡ããã©æè¿ã代æ¿ãã©ã³ãã®666åç®ã®æ¹èšãç¥ããŸãããããã¯çµããã§ã¯ãããŸããã
ç®æš
ç®æšã¯ãæããªãœãŒã¹ãæ¶è²»ããæäœãç¹å®ããéèŠãªããŒã¿ããªã¥ãŒã ãæã€ã·ã¹ãã ã®ç¶æ
ãå€æããããšã§ãã ããŒã¿ãšã¯ãã«ããŽãªãšè£œåã®æ°ãæå³ããŸãã å Žåã«ãã£ãŠã¯ãæé©åã«é¢ããæšå¥šäºé
ãäœæãããŸãããåé¡ã®åå ãçªãæ¢ããŠãããäžåããããšã¯ããã»ã©é£ãããããŸããã
æºåïŒãã£ã¬ã¯ããªæ§é ãšäŸåé¢ä¿
æè¿ãhabravoprosyã§ãã¡ã€ã«éã®äŸåé¢ä¿ãèªåçã«çæããã³ã³ããŒãã³ãã«ã€ããŠè³ªåããGraphvizãšåéã§
ããæ¡åŒµæ©èœãèªåã§çºèŠããŸããããã以å€ã®å Žåã¯ãããã°ã©ã ã®ã»ãšãã©ã®æãéèŠãªã³ã³ããŒãã³ãã
\ published \ SC \ html \ scripts \ modules \ test \ class.test.php
ãããŠããªãããªããå¿
èŠãªã®
published \ SC \ html \ scripts \ modules \ test \ _methods \ search_simple.phpã¯éå±ã§é¢çœããªãã§ãããã
æéãšæ¬è³ªãç¥ãå¿
èŠããã£ãã®ã§ãç§ã¯grepã®éããã©ããŸããããããããã¯æ¬²ãããªããã¢ããã€ã¹ãããŸããã
ç¹ã«ã³ãŒã«ããã¯ã«é¢ãã圌ãã®å®éšãèæ
®ããŠãããããç§ã¯ãŸã åãæ°ãæããŸãã
æºåïŒã³ã³ãã³ãã®å
å¡«
å°éã®ããŒã¿ã®ãã¹ãïŒã¢ã«ãã¡éçºæ®µéã§ãªãéãïŒãæå³ããªããªããšäž»åŒµããã®ã¯æãã§ãããã ãããã£ãŠããŸãæåã«ãCMSãç®çã®å
容ã§æºãããŸãã å®éã®ããŒã¿ããªãå Žåã¯ãã§ããã ãé·ãããŒã¿ããŒã¹ã«æžã蟌ãã¹ãããŒãäœæããŸãã
WebAsyst SSã¯ã450çªç®ãš4500çªç®ã®è£œåãå«ãã«ã¿ãã°äžã§ãŸã£ããç°ãªãåäœãããŸãã
æºåïŒæšæºé¢æ°ã®ãªãŒããŒããŒã
OOPã®èŠ³ç¹ãããªãŒããŒããŒãã«ã€ããŠã¯èª¬æããŸããããé¡ã®ãªãŒããŒããŒãã«ã€ããŠã¯èª¬æããŸããã ãã®æ¹æ³ã¯ç°¡åã§ããæšæºé¢æ°ãæ¢ããŠãã¹ãŠã®ãã¡ã€ã«ã調ã¹ãov_ {original_name}ã«çœ®ãæããŸããããã§ãã¹ãŠã®ã«ãŒããéããŠããŸãã ãã¹ãŠã®ããŒã¿ããŒã¹ã¯ãšãªãèšé²ããfopenãfwriteãfile_get_contentsãããã¯ããããevalã®ãããªãã©ãã¯ããžãã¯ã䜿çšããããšãããããã¿ã€ãã³ã°ã確èªããŸãã ããã©ãŒãã³ã¹ã¯éåžžããã¯ãšã³ãã«äŸåãããããæã䟿å©ãªãã®ã³ã°ã¯mysql_queryã§ãã
ç§ã¯ãã®ãããªãã®ã䜿çšããŠããŸãïŒ
function ov_mysql_query($text) {
$debug= false ;
if ($debug){
$source=debug_backtrace();
$src_array_count=count($source);
$what=array( '\r\n' , '=' , ',' , '?' , '&' , '+' , ')' , '(' , '/' );
$to=array( '\r\n' , '_' , '_' , '_' , '_' , '_' , '_' , '_' , '_' );
$filename=str_replace($what,$to,$_SERVER[ 'REDIRECT_URL' ]);
static $function_counter_m = 0;
$function_counter_m++;
$oldDir=getcwd();
chdir($_SERVER[ 'DOCUMENT_ROOT' ]);
$fp = fopen( 'logs/' .$filename. '.log' , 'a' );
fwrite($fp, $function_counter_m. ') ' .str_replace( '\r\n' , '' ,trim($text)). "\r\n" );
for ($i=0;$i<$src_array_count;$i++) {
fwrite($fp, 'DEBUG INFO:' .$source[$i][ 'file' ]. ' | ' .$source[$i][ 'line' ]. "\r\n" );
}
fwrite($fp, "\r\n" );
fclose($fp);
chdir($oldDir);
}
$q=mysql_query($text);
return $q;
}
äœæ¥ã®çµæããªã¯ãšã¹ãã«é¢ãããããã°æ
å ±ïŒã³ãŒã«ã¹ã¿ãã¯ïŒãå«ããã¡ã€ã«ãšãªã¯ãšã¹ãèªäœãwww / logsãã©ã«ããŒã«ä¿åãããŸãã
æºåïŒxDebug
æ£çŽã«èšããšãä»ã®èª°ãã®ã¡ã«ããºã ã解æããè©Šã¿ããããã°ãšåŒã¶ã®ã¯é£ããã§ãã ããããããã¯æºåã§ãã ãã ãããããã¬ãçŽæ¥äœ¿çšã§ãããã©ããã¯ãããã«ããã¯ãç¹å®ããŠã·ã¹ãã ãæé©åã§ãããã©ããã«ãã£ãŠæ±ºãŸããŸãã phpã§ããã°ã©ã ãäœæããå Žåã¯ãxDebugãå¿
èŠã§ããxDebugã¯ç¡æã§ãå°ãªããšãå°ãã®èªå°å¿ã®ããphpã³ãŒããšãã£ã¿ãŒã«ãã£ãŠãµããŒããããŠããŸãã
ãããã¬ã¯ãèšå®ãããã£ã¬ã¯ããªã«ç¹å¥ãªãã³ããçæããããã«ããŸããŸãªããŒã¿ãä¿åãããŸãïŒãªãã·ã§ã³ïŒã ç§ãæã£ãŠããäž»ãªOSã¯Windowsã§ãããããLinux kovcachegrindã¯wincachegrindãããã¯ããã«äŸ¿å©ã§ããããããã®ã¹ãããã§å©ç¹ããããŸãïŒäž¡æ¹ã®ããã°ã©ã ã§ãããã®ãã³ãã衚瀺ã§ããŸãããå®éã«ã¯ãããã¯ã¡ã¢åž³ã§èªãããšãã§ããéåžžã®txtãã¡ã€ã«ã§ãé倧床ïŒã
ãŸã³ããé
ããå§ããŸãããã
ãã¹ãã¹ã¿ã³ã
- WebAsystã®äœ¿çšããŒãžã§ã³ ïŒ287ïŒã¯ãªãŒã³ããããããã³modãªãïŒ*
- ããŒã¿ããŒã¹å
ã®è£œåã®æ° ïŒ4461
- ããŒã¿ããŒã¹å
ã®ç¹æ§ã®ã¿ã€ãã®æ° ïŒ144
- ããŒã¿ããŒã¹å
ã®ç¹æ§å€ã®æ° ïŒ44170
- ããŒã¿ããŒã¹å
ã®ã«ããŽãªæ° ïŒ354
- ããŒã¿ããŒã¹å
ã®åçã®æ° ïŒ3516
*ãããããšã«ããå€æŽãã°ãè¿œã人ã«ã¯ã250ããã¯ç®¡çãŠã£ã³ããŠã®ãµããŠã£ã³ããŠã®ãã¿ã³ã®è²ã®ã¿ãç°ãªããã
åææ§æã«ã€ããŠå°ã
1ã€ã®è£œåãš1ã€ã®ã«ããŽãªã®ããã©ã«ãã§ã®ã¯ãªãŒã³ãšã³ãžã³ã®çµæã ããã°ã©ã ã«ã¯éåžžã®ãã£ãã·ã³ã°ã¡ã«ããºã ããããŸãããã©ãã ãæ£åœåã§ããããå€æã§ããŸãã
ããŒãž* | ããã©ã«ããã£ãã·ã¥ã䜿çšããããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ããã£ãã·ã¥ãªãã®ããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ãã®ãã£ãã·ã¥ã§ã®ããŠã³ããŒãé床** | ããã©ã«ããã£ãã·ã¥ãªãã®ããŠã³ããŒãé床** |
ããŒã | 64 | 73 | 10,304 | 17,011 |
ã«ããŽãªãŒ | 83 | 90 | 10,616 | 19,457 |
補å | 100 | 107 | 15,010 | 28,731 |
æ€çŽ¢ïŒæåïŒ | 69 | 76 | 10,507 | 18,209 |
*ãªã³ã¯ã¯ããŒãžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ã€ãªãããããèŠæ±ãããããŒã¿éã衚瀺ããããã®ã«æ¯äŸããŠãããã©ãããæ確ã«ãªããŸãã
** Wincachegrindããã®çŽ¯ç©æé
髪ã®æ¯ãç«ã£ãŠããªãå Žåã¯ãèªã¿é²ããŠã1ã€ã®è£œåãš1ã€ã®ã«ããŽãªãããªãããšãå¿ããªãã§ãã ããã
ããŒã¿æ§æ
æ°åã®è£œåãšåŒ·åãªã«ã¿ãã°éå±€ã§ãã¹ããã³ãã䜿çšãããšããæ¥ãŸããã
ããŒãž | ããã©ã«ããã£ãã·ã¥ã䜿çšããããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ããã£ãã·ã¥ãªãã®ããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ãã®ãã£ãã·ã¥ã§ã®ããŠã³ããŒãé床 | ããã©ã«ããã£ãã·ã¥ãªãã®ããŠã³ããŒãé床 |
ããŒã | 64 | 73 | 12,323 | 19,404 |
ã«ããŽãªãŒ | 186 | 193 | 20,333 | 29,881 |
補å | 108 | 115 | 16,156 | 30,100 |
æ€çŽ¢ïŒæåïŒ | 69 | 76 | 20,733 | 25,162 |
æ©èœã®éžæïŒé«åºŠãªæ€çŽ¢ïŒ | 900 | 907 | 43,216 | 50,242 |
ã¡ã€ã³ããŒãžã«64åã®ã¯ãšãªïŒINã¹ããŒãã¡ã³ãïŒaãbãcãdã...ãzïŒïŒããŸã æ®ã£ãŠããå Žåãã«ããŽãªã¯å°ããœãŒã»ãŒãžã§ãããç¹æ§ã«ããéžæã¯éåžžã®ãã¹ãã£ã³ã°ã ãã§ãªãç Žå£ããŸããŸããVPSã ããããé«åºŠãªæ€çŽ¢ãç¡å¹ã«ãããšåœ¹ç«ã€ãšã¯æããªãã§ããããïŒ ãã®ãœãããŠã§ã¢è£œåã«ã¯ã競åä»ç€Ÿã®æã«è² ããŠç掻ãå°é£ã«ããå¯èœæ§ãããããã€ãã®ææžåãããŠããªãæ©èœããããŸãã
ãããã®æ©èœã«ã€ããŠã¯ãURlãåŠçããã¯ã©ã¹ïŒclass.furl.phpïŒãæãäžããããšã§åŠç¿ã§ããŸãã ããšãã°ãstore.ru / category / category_with_lot_products /
all /ã®ãã³ã¹ããããã³ããŒãªã¯ãšã¹ããå®è¡ã§ããŸãã ãããã¬ãã«ã§ãã®ã«ããŽãªã«113ããŒãžãããŸãã
éæ¿ïŒ
ããŒãž | ããã©ã«ããã£ãã·ã¥ã䜿çšããããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ããã£ãã·ã¥ãªãã®ããŒã¿ããŒã¹ã¯ãšãª | ããã©ã«ãã®ãã£ãã·ã¥ã§ã®ããŠã³ããŒãé床 | ããã©ã«ããã£ãã·ã¥ãªãã®ããŠã³ããŒãé床 |
ã«ããŽãªïŒ/ãã¹ãŠ/ïŒ | 241 | 248 | 430,049 | 439,102 |
å°å°èš
ç 究ã®çŸåšã®æ®µéã§ã¯ã次ã®ããšãããã£ãŠããŸãã
- æœåšçã«é«ãè² è·ãäœæããããšãå¯èœã§ã
- ãã£ãã·ã¥ãããšãã£ãã·ã¥ãªãã®ããŒã¿ããŒã¹ã¯ãšãªã®æ°ãå€ãããŸã
ãŸããstore.ru / category / category_with_lot_productsããŒãžãèªã¿èŸŒããšãã«ãããã¬ãŒã«ãã£ãŠäœæããããã³ããèŠããšã2ã€ã®æã倧é£ãã®æäœãèªä¿¡ãæã£ãŠåºå¥ã§ããŸãã
foreach ($Interfaces as $_Interface){
ModulesFabric::callInterface($_Interface);
}
ãããŠ
print $smarty->fetch($CurrDivision->MainTemplate);
ãããã«å ããŠãã«ããŽãªããªãŒã®ååŸã«å€ãã®ãªãœãŒã¹ãè²»ããããis_objectã95åå以äžåŒã³åºãããããã°ã©ã ã¯LanguagesManager :: getInstanceã70ååèŠæ±ããæååã®é·ãã28å以äžãšèŠãªããLanguagesManager :: ml_isEmptyåŒã³åºãã¯æãé
ã2/3ã§ãæäœ-getExtraParametrsã
åé¡è§£æ±ºãªãã·ã§ã³
ãããã
å€ãã®èšªåè
ãããªãããããã°ã©ã ã®é床ãäœäžããå Žåã¯ãæå°éã®çµ±åæéã§ãã¡ã€ã«ãã£ãã·ã¥ã䜿çšã§ããŸãã
次ã®ã¹ããŒã ããå§ãããŸãã
- éãæ©èœãèŠã€ãã
- ã°ããŒãã«å€æ°ã«äŸåãããã©ãããå€æãã
- ååã{original_function} _cachedãªã©ã«å€æŽããŸã
- {original_function}ãäœæãããã®æ¬æã§ç¹å¥ãªé¢æ°{original_function} _cachedãä»ããŠåŒã³åºããŸã
æé©åã®åæ段éã§ãããã°ã©ã ãè¿
éã«æ©èœããå¿
èŠããããæéããªãã£ããšãã«ããã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŸããã
function cache_function($buildCallback, array $args = array(), $timeoutHours = 5){
$oldDir=getcwd();
chdir($_SERVER[ 'DOCUMENT_ROOT' ]);
// -
if (is_array($buildCallback)){
$cacheKey = get_class($buildCallback[0]) . '::' . $buildCallback[1];
}
else {
$cacheKey = $buildCallback . ':' . serialize($args);
}
$cacheKey .= ':' . serialize($args);
if (!file_exists( 'functions_cache/' .$buildCallback. '/' )) {
@mkdir( 'functions_cache/' .$buildCallback. '/' );
}
$file_path = 'system_cache/' .$buildCallback. '/' . sha1($cacheKey);
if (!file_exists($file_path) OR filemtime($file_path) < (time() - $timeoutHours*60)){
$result = call_user_func_array($buildCallback, $args);
file_put_contents($file_path, serialize($result), LOCK_EX);
} else {
$result = unserialize(file_get_contents($file_path));
}
chdir($oldDir);
return $result;
}
ååŸãããã®ïŒ
function original_function($arg1,$arg2){
return cache_function( 'original_function_cached' ,array($arg1,$arg2),10);
}
ãã®çµæãoriginal_function_cachedé¢æ°ã®å®è¡ã®ã·ãªã¢ã«åãããçµæãwww / functions_cache / original_function_cachedãã£ã¬ã¯ããªã«è¡šç€ºããã10æé䜿çšãããŸãã
é£ãã
é¢æ°ã®å®è¡çµæãã©ã®ããã«ãã£ãã·ã¥ãããã«é¢ä¿ãªããå€æ°ã®ã³ã³ãããŒã©ãŒãšãã©ã°ã€ã³ã䜿çšããŠå€æ°ã®ãã³ãã¬ãŒãã1ã€ã®ããŒãžã«åéãããªãœãŒã¹éçŽåã®ãã§ãããæ®ã£ãŠããŸãã
ããã§ã¯ããã³ãã¬ãŒãã®æ°ãæé©åããŠããã³ãã¬ãŒãã®éåžžã®éå±€ãäœæãïŒããã©ã«ãã§ã¯ããã¹ãŠã®ãã³ãã¬ãŒããäžæ¬ããŠä¿åãããŸãïŒããããã¯ãã£ãã·ã¥ã«ç§»è¡ãå§ããããšããå§ãããŸãã ãããã£ãŠãæã蚪åãããããŒãžã§ã¯ãããªã倧ããªé床ã®å¢å ãèŠãããŸãã
ãšãŠãé£ãã
ããããç§ãšåãããã«ãWAã§äœæ¥ãã以å€ã«éžæè¢ããªããé·æã«ããã£ãŠäœ¿çšããå Žåããããã¯ãã¹ãŠååã®å°ºåºŠã§ãã
æé©åãã¢ã«ãŽãªãºã ã®æžãæããå¿
èŠã§ããïŒããŒãžããŒã·ã§ã³ãå®è£
ããæ¹æ³ãèªç±ã«èŠãŠãã ããïŒããã£ãã·ã¥ããããã³ã°ããããšã¯ã§ããŸããã äžè¬çã«ããã®ç¹ã«é¢ããŠã¯ãç¹å®ã®æéã«æ°ããã³ã³ãã³ããèªåçã«è¿œå ããããã®æç¹ã§ãã£ãã·ã¥å
šäœããªã»ããããäœè£ãããããšãç¥ã£ãŠããããããã®ç¹ã§ç°¡åã§ãã äŸ¡æ Œãšç¹æ§ã®ç¡å¹åã«å¯ŸåŠããã«ã¯ããã£ãã·ã¥ã°ã«ãŒããæ§æããå€ããå€æŽããå¿
èŠããããŸãïŒURLã®çæããç®èã®åæ§ç¯ãŸã§ïŒã ãã¡ãããã»ãšãã©ã®åé¡ã§ã¯ã¹ããŒãã«å¯ŸåŠã§ããŸããWebAsystSSèªäœã¯ãã£ãã·ã³ã°ã¡ã«ããºã ã䜿çšããã€ããã¯ãªãããã§ãã®ã§ãããã°ã©ã ãåæ§ç¯ããå¿
èŠããããŸãã
ããšãã°ã補åã§ããŒãžå
šäœããã£ãã·ã¥ããæå¹æéã5æéã«èšå®ããŸãã äŸ¡æ Œã¯ä»¥åã«å€æŽãããå¯èœæ§ããããšæ³å®ãããŠããŸããããã£ãã·ã¥ããªã»ããããå¿
èŠã¯ãããŸããã ç®çã®ã¢ãã«ã®ç®çã®ã¡ãœããïŒ$ productModel-> getPriceïŒ$ pIDïŒãªã©ïŒãæå¹ã«ããŠäŸ¡æ Œãè¿ãsmarty-pluginãäœæã§ããŸãã ååã®ããããŒãžã§ãããŒã¿ããŒã¹ãžã®1ã€ã®ã¯ãšãªãåãåããŸãã ãã¥ãŒãã£ãã·ã¥ã¯åæ§ç¯ãããŸããã
ãããã«
ã©ããããããããã¯é·ãéå€æããŸãããããã¹ãŠãæ¬è³ªçã«ããããã§ãã
ãã®èšäºã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãšæšå¥šäºé
ããæ°ãããã®ïŒå«ãŸããŠãããxDebugããããŒã¿ããŒã¹ããã®ãã¹ãŠã®åŒã³åºããã¯ã©ã¹ãééãããšããéçºè
åãã®èšèãåãåããªãã«ãŒã«ïŒã«ã€ãªããããå€ãéçºã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã¢ã€ãã¢ã