2009-09-06 7 views

उत्तर

16
$size_of_session_estimate = strlen(serialize($_SESSION)); 

अब, यह सिर्फ एक अनुमान है, के रूप में serialize हैंडलर नहीं सत्र क्रमानुसार करने के लिए इस्तेमाल किया है, लेकिन यह भी बहुत दूर बंद नहीं होगा।

कहा जा रहा है कि, जब तक आप सत्र में मूर्खतापूर्ण डेटा संग्रहीत नहीं कर लेते हैं, तो आपको शायद इसके बारे में चिंता करने की आवश्यकता नहीं है।

+0

+1 स्थान, * और * बहुत जल्दी:

एक डिफ़ॉल्ट अपाचे सेटअप पर, आप सत्र डेटा के साथ डिस्क पर संग्रहीत के रूप में देख सकते हैं। – karim79

+0

मैं उत्सुक हूं, मैंने सोचा था कि सत्र की आकार सीमा आपकी याददाश्त पर आधारित थी, क्या अन्य कारक हैं? मैं पूछता हूं क्योंकि मैं उपयोगकर्ता सत्र – JasonDavis

+0

में डेटा की पागल राशि संग्रहीत करता हूं, मुझे लगता है कि यह काम करता है क्योंकि स्ट्रेलन वर्णों की संख्या देता है। और प्रत्येक चरित्र 1kb है .. अगर मैं गलत हूं तो मुझे सही करें। – Rahul

8

यदि आप अपाचे का उपयोग कर रहे हैं, तो अपने APACHE_ROOT/tmp फ़ोल्डर में एक नज़र डालें और sess_*********** नाम की फ़ाइलों को देखें।

अन्यथा here से स्क्रिप्ट लें और इसे array_size($_SESSION) का उपयोग करके कॉल करें। यह सटीक मान से थोड़ा अलग हो सकता है (आपके PHP मॉड्यूल द्वारा किए गए संपीड़न/अनुकूलन के आधार पर)।

+0

चलाएगा ध्यान रखें कि कुछ कॉन्फ़िगरेशन/tmp के अलावा अन्य स्थानों में सत्र संग्रहीत कर सकते हैं। सुनिश्चित करने के लिए आपको अपने PHP कॉन्फ़िगरेशन की जांच करनी होगी। – Charles

+2

paste-it.net ऑफ़लाइन है, क्या आपके पास अपनी स्क्रिप्ट का एक वैकल्पिक लिंक है? – rubo77

4

यह:

echo strlen(session_encode()); 

आप $ _SESSION द्वारा इस्तेमाल किया डिस्क स्थान की मात्रा session_encode (के बाद से (यह मानते हुए session.save_handler डिफ़ॉल्ट मान फ़ाइलों है), दे देंगे) एक स्ट्रिंग रिटर्न सत्र फ़ाइल में संग्रहीत स्ट्रिंग के समान।

यह भी session_encode()serialize() से कम मेटाडेटा शामिल के बाद से, इस्तेमाल किया स्मृति की मात्रा का एक बेहतर संकेत दे देंगे। पर

session_write_close(); 
echo file_get_contents(sys_get_temp_dir() . 'sess_' . session_id()); 
+1

"स्वीकृत उत्तर होना चाहिए" –

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