किन स्थितियों बेहतर serialize उपयोग करने के लिए की तुलना में json_encode () का उपयोग करने के लिए () है?

वोट
27

यही कारण है कि के बारे में सभी मैं पूछने के लिए की जरूरत है। पीएचपी पुस्तिका जांच की और देखा एक उपयोगकर्ता पोस्ट कि serialize कह 45-90% json_encode की तुलना में धीमी है (वह कुछ मानक भाग गया)। लेकिन यह कैसे धीमी धीमी है? मैं बनाम सामान चारों ओर विशाल की एक बहुत कुछ मिल सकता है, लेकिन जिनमें से कोई भी मेरे जैसे एक शुरुआत से संबंधित कर सकते हैं।

मैं तो बस एक स्क्रिप्ट है कि json में एक सरणी और एक दूसरे से यह डिकोड करने के लिए इनकोडिंग लिखा था। मैं serialize साथ भी ऐसा ही किया। Obviuously है कि मुझे उन दोनों के बीच कोई महत्वपूर्ण मतभेद नहीं कहेंगे।

21/09/2009 को 02:50
उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
3

कि 10,000 बार (प्रत्येक) (उम्मीद) दोनों स्मृति के उपयोग और CPU समय में अंतर के एक औसत दर्जे का विचार मिलता है।

अधिकतर अंतर प्रदर्शन के मामले में महत्वपूर्ण नहीं होगा। JSON का उपयोग करते हुए दो विशेष परिस्थितियों में उपयोगी है: एक वेब ब्राउज़र के लिए और (वेब ​​सेवाओं और अन्य साधनों के माध्यम से) अन्य अनुप्रयोगों, विशेष रूप से गैर पीएचपी प्लेटफार्मों पर उन के साथ अंतर के लिए लौटने के लिए।

21/09/2009 को 02:55
का स्रोत उपयोगकर्ता

वोट
1

आप एक आवेदन और एक अन्य के बीच डेटा स्थानांतरित कर रहे हैं, यह आम तौर पर लगभग हमेशा उपयोग करना बेहतर है JSON इनकोडिंग के बजाय डेटा पीएचपी धारावाहिक डेटा के रूप में बाद में एक प्रारूप पीएचपी के लिए विशिष्ट और JSON के रूप में के रूप में पोर्टेबल नहीं है।

यहां तक ​​कि एक स्थिति है जहाँ दोनों सर्वर और ग्राहक दोनों पीएचपी आधारित हैं, यह आप JSON की तरह एक पोर्टेबल प्रारूप का उपयोग करने के सर्वर से प्रतिक्रिया स्वरूप बदलने के लिए बिना भविष्य में नए ग्राहकों के निर्माण की अनुमति के लिए behooves।

मैं अपने आप को इन दोनों में से किसी भी बेंच मार्किंग नहीं किया है, लेकिन अगर आपको लगता है कि json एन्कोडिंग पता लगा रहे हैं, क्रमबद्धता की तुलना में तेजी है सभी को और अधिक कारण इसका इस्तेमाल करने से।

इसके अलावा, मैं JSON इनकोडिंग डेटा के रूप में यह धारावाहिक डेटा की तुलना में पढ़ने में आसान है और कल्पना की जा करने के लिए जल्दी से फ़ायरबग में फेंक दिया जा सकता है पसंद करते हैं।

21/09/2009 को 03:05
का स्रोत उपयोगकर्ता

वोट
2

जब आप केवल सांकेतिक शब्दों में बदलना / की वस्तुओं / सरणी एक जोड़े को क्रमानुसार, मैं कहेंगे गति में अंतर यह है कि महत्वपूर्ण नहीं होगा: आप genherally यह अनुभव नहीं होंगे।

अंतर यह है कि serialize PHP के लिए विशेष रूप से किया जाता है; उदाहरण के लिए, वर्ग के रूप में जानकारी सुर serialize के साथ खो नहीं कर रहे हैं, और जब unserializing पुनः प्राप्त किया जा सकता है।

इसका प्राथमिक उपयोग जावास्क्रिप्ट और PHP के बीच डेटा का आदान प्रदान करने जा रहा है - दूसरी ओर, JSON पीएचपी, जो यह एक अच्छा विनिमय प्रारूप है इसका मतलब है के लिए विशिष्ट नहीं है।


उदाहरण के लिए, कोड के इस टुकड़े पर विचार करें:

class A {
    public $a;
    public function __construct($a) {
        $this->a = $a;
    }
}

$test = new A(10);

अब, चलो क्रमानुसार और unserialize $ परीक्षण करते हैं:

var_dump(unserialize(serialize($test)));

हमें मिला :

object(A)[2]
  public 'a' => int 10

यानी, एक वस्तु, वर्ग ए के उदाहरण


अब, चलो JSON साथ भी ऐसा ही करते हैं:

var_dump(json_decode(json_encode($test)));

अब हम केवल stdClass का एक उदाहरण है:

object(stdClass)[2]
  public 'a' => int 10

JSON डेटा का आदान-प्रदान के लिए अच्छा है ( 'वर्ग ए' nformation एक और आवेदन के लिए खास मतलब नहीं है PHP के लिए महत्वपूर्ण है, लेकिन शायद); लेकिन अपनी सीमाएं भी हैं।

21/09/2009 को 03:07
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more