2013-04-17 6 views
6

मेरे पास php 5.4/mysql वेबसाइट प्रति दिन 5 मिलियन हिट के साथ है, nginx और php-fpm के साथ लिनक्स सर्वर पर चल रही है। डेटाबेस एक अलग सर्वर पर स्थित है।htmlspecialchars() CPU उपयोग को कम करने का कोई तरीका?

मैंने देखा है, कि सर्वाधिक व्यस्त समय में मेरी वेब सर्वर लोड 15, सामान्य 4 के बजाय ट्रैक्टर कोर प्रोसेसर के लिए हो जाता है। मैं xdebug और xhprof के साथ अपने php आवेदन प्रोफाइल है, और देखा, कि सीपीयू काम के 90% Twig टेम्पलेट्स है कि मैं डेटा को प्रदर्शित करने के लिए उपयोग में htmlspecialchars() समारोह द्वारा किया जाता है। प्रति पृष्ठ 100 से 1000 htmlspecialchars() कॉल कभी-कभी होते हैं। मैंने अनजान भागने को कम करने की कोशिश की है, लेकिन फिर भी इसे टाला नहीं जा सकता है।

वहाँ किसी भी तरह से मैं htmlspecialchars() समारोह द्वारा CPU उपयोग को कम कर सकते है? शायद इसके लिए php में किसी प्रकार का कैशिंग है? या कोई और रास्ता है?

+1

यदि आप इतना डेटा से बचते हैं, तो शायद इसे स्टोर करने के लिए बेहतर यह पहले से बच निकला है? –

+0

@Artjom Kurapov, अधिकांश डेटा उपयोगकर्ताओं द्वारा जोड़ा जाता है। उन्हें संपादित करने के लिए, मुझे इसे अनदेखा करना होगा और फिर इसे फिर से बचाना होगा, जो वास्तविक दर्द होगा। यही कारण है कि केवल मामलों में से एक है ... –

+0

आप CPU पर कम कर रहे हैं, लेकिन नहीं भंडारण स्थान पर, आप स्टोर कर सकते हैं यह दोनों को कोई अनपेक्षित बच गए हैं। एक बार बचें, जब इसे अपडेट किया जाए, और जब भी उपयोगकर्ता संपादित करना चाहता है, तो मूल का उपयोग करें। यह कुछ है जो मैंने मार्कडाउन के साथ उपयोग किया था और मैं परिणामों से संतुष्ट था। – Maerlyn

उत्तर

1

टहनी प्रयोग न करें। बस इस कोड के साथ php-files का उपयोग करें:

<?php 
// Load a php-file and use it as a template 
function template($tpl_file, $vars=array()) { 
    $dir='/usr/local/app/view/'.$tpl_file.'.php'; 
    if(file_exists($dir)){ 
     // Make variables from the array easily accessible in the view 
     extract($vars); 
     // Start collecting output in a buffer 
     ob_start(); 
     require($dir); 
     // Get the contents of the buffer 
     $applied_template = ob_get_contents(); 
     // Flush the buffer 
     ob_end_clean(); 
     return $applied_template; 
    } 
} 
+0

सशर्त बयान? लूप्स? –

+0

उन्हें PHP-इनलाइन टैग के साथ बनाएं – Gustav

संबंधित मुद्दे