में कैशिंग से कैसे संपर्क करें मैं पूरी तरह से कैशिंग में अपना सिर प्राप्त करना शुरू कर रहा हूं। मेरे पास एक साधारण अनुक्रमणिका एक्शन() है जो सभी दिए गए डेटासेट प्राप्त करता है। मेरे दृष्टिकोण है:ZF2
- मौजूदा कुंजी 'controllername सूचकांक सूचकांक'
- के लिए चेक मौजूदा: के प्रमुख
- अगर नहीं मौजूदा, सामान्य कार्रवाई कर मान और कुंजी जोड़ने
कुंजी के अंदर मान ViewModel होना चाहिए जो मेरे डेटा के साथ उत्पन्न और पॉप्युलेट किया जाएगा।
यहाँ मैं अब तक क्या किया है है:
<?php
public function indexAction()
{
$sl = $this->getServiceLocator();
// $cache = $sl->get('cache');
// $key = 'kennzahlen-index-index';
//
// if ($cache->hasItem($key)) {
// return $cache->getItem($key);
// }
$viewModel = new ViewModel();
$viewModel->setTemplate('kennzahlen/index/index');
$entityService = $sl->get('kennzahlen_referenzwert_service');
$viewModel->setVariable('entities', $entityService->findAll());
// $cache->setItem($key, $viewModel);
return $viewModel;
}
कैशिंग भागों परीक्षण प्रयोजनों के लिए बाहर टिप्पणी की हैं, लेकिन मूल रूप से यह सब है कि मैं कर रहा हूँ है। कैशिंग config/सेवा ऐसा दिखाई देता है:
<?php
'cache' => function() {
return \Zend\Cache\StorageFactory::factory(array(
'adapter' => array(
'name' => 'filesystem',
'options' => array(
'cache_dir' => __DIR__ . '/../../data/cache',
'ttl' => 100
),
),
'plugins' => array(
array(
'name' => 'serializer',
'options' => array(
)
)
)
));
},
क्रमबद्धता और कैशिंग काफी अच्छी तरह से काम करता है, लेकिन मैं लापता परिणामों से हैरान हूं। ZendDevelopersToolbar मुझे बताता है कि कैशिंग सीमा के बिना 1.8 से 2.5 के बीच के समय के बारे में बताते हैं। कैशिंग भागों को असम्बद्ध (सक्षम) होने से वास्तव में मेरे पृष्ठ के लोडिंग समय में वास्तव में सुधार नहीं होता है।
तो मेरा सवाल है: क्या यह दृष्टिकोण पूरी तरह से गलत है? क्या अलग-अलग, अधिक तेज़ भागों हैं, जिन्हें कुछ साफ विन्यास युक्तियों से बचाया जा सकता है?
मुझे लगता है कि एक पृष्ठ का 2 सेकंड लोड समय निश्चित रूप से धीमा है। मेरे लिए 1 एस अधिकतम डेटा की एक बड़ी मात्रा है, लेकिन निश्चित रूप से उससे अधिक कुछ नहीं: एस
सभी सहायता/संकेत/सुझावों की बहुत सराहना की जाएगी। अग्रिम में धन्यवाद!
आप इस विशिष्ट भाग आप इस परेशानी हो रही खड़ी कर रहा है यकीन है: मैं अपने ऐप्लिकेशन में इस सूखी उपयोग करने के लिए एक छोटे से मॉड्यूल लिखा? मेरे ZF2 पृष्ठ आमतौर पर 100ms से कम होते हैं, इसलिए इसके लिए एक और कारण होना चाहिए। इसके अलावा मैं विशिष्ट क्वेरी परिणामों को कैश करना पसंद करूंगा, मॉडल नहीं देख सकता। यदि आप संबंधित दृश्य को कैश करना चाहते हैं, तो दृश्य प्रतिपादन कैश करें ताकि आप .phtml फ़ाइलों के पार्सिंग को भी छोड़ सकें। अन्यथा, सेवा के परिणाम कैश करें। –
सवाल यह होगा कि कोड को इंजेक्ट करने के लिए, इसलिए मैं पहले से ही दृश्य प्रतिपादन कैश कर सकता हूं? हालांकि स्पष्ट रूप से मुझे यह समझने का सुझाव दिया जाएगा कि मेरी स्क्रिप्ट इतनी धीमी गति से क्या कर रही है। वास्तव में कई मॉड्यूल सक्षम नहीं हैं, zfcuser, bjyauthorize, zenddeveloperstoolbar और सिद्धांत-सामान + मेरा मॉड्यूल जो कुछ डीबी इकाइयों को प्राप्त करने के लिए सिद्धांत का उपयोग करता है: S – Sam
मैंने एक संभावित कैश विकल्प का उत्तर दिया जहां आपका HTML परिणाम कैश किया गया है। Xdebug इंस्टॉल करें और यह देखने के लिए कुछ प्रोफाइलिंग क्रियाएं करें कि आपके आवेदन की असली बाधा क्या है। –