Ne de senaryolar o) (serialize kullanmak daha json_encode () kullanmak daha iyidir?

oy
27

Ben sormak gerekir hakkında. PHP kılavuzu Kontrol ve bu serialize söyleyerek kullanıcı sonrası json_encode daha 45-90% daha yavaştır gördü (o bazı kriterler koştu). Ama yavaş nasıl yavaş nedir? Etrafa yayılan versus bir sürü bulabilirsiniz ama hiçbiri benim gibi bir acemi için ilgili olabilir.

Sadece json bir dizi ve bunun kodunu başka bir kodlanmış bir senaryo yazdım. Ben serialize aynı şeyi yaptı. Obviuously bu beni aralarında anlamlı bir farklılık söylemem.

Oluştur 21/09/2009 saat 02:50
kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
3

10.000 kez (her biri) (umarım) bellek kullanımı ve CPU zamanında hem farklılıkların ölçülebilir bir fikir edinmek Bunu yap.

Çoğunlukla fark performansı açısından önemli olmayacaktır. JSON kullanarak iki durum için yararlıdır: Web tarayıcısına ve (Web hizmetleri ve diğer yollarla) diğer uygulamalar olmayan PHP platformlarda özellikle çalışabilirlilik döndürmek için.

Cevap 21/09/2009 saat 02:55
kaynak kullanıcı

oy
1

Eğer bir uygulama ve başka arasında veri aktarımı yapıyorsanız, kullanımı genellikle hemen hemen her zaman daha iyidir JSON kodlanmış veriler yerine PHP tefrika sonra PHP özgü ve JSON gibi taşınabilir bir formattır gibi verileri.

Hatta sunucu hem de istemci PHP tabanlı hem bir durumda, bu sunucudan yanıt biçimini değiştirmek zorunda kalmadan gelecekte yeni müşteriler yaratılmasına izin verecek JSON gibi taşınabilir bir biçim kullanmak yararınadır.

Bu ikisinin herhangi kıyaslama kendim yapmış, ama o json kodlama buluyoruz eğer kullanmak daha sebepten daha serileştirme daha hızlıdır değil.

Ayrıca, ben tefrika verilere göre okumak daha kolaydır ve görsel hale hızla kundakçı içine atılır gibi JSON veri kodlanmış tercih ederim.

Cevap 21/09/2009 saat 03:05
kaynak kullanıcı

oy
2

Yalnızca kodladığınızda / nesneler / dizinin birkaç seri, ben hız farkı önemli olmayacaktır söyleyebilirim: Eğer genherally bunu algılamaz.

Fark PHP için özel olarak yapılmış olması serialize olduğu; Örneğin, sınıflar gibi bilgi sur serialize kaybolmamasını ve unserializing zaman alınabilir.

birincil kullanımı Javascript ve PHP arasında veri alışverişi için varlık - Öte yandan, JSON iyi bir değişim biçimi demektir PHP, özgü değildir.


Örneğin, bu kod parçasını göz önünde bulundurun:

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

$test = new A(10);

Şimdi, seri ve unserialize $ testi alalım:

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

Biz alıyorum:

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

yani bir nesne, A sınıfı örneği


Şimdi, JSON ile aynı yapalım:

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

Biz şimdi sadece stdClass bir örneğini vardır:

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

JSON veri alışverişi için güzel ( 'A sınıfı' nformation başka bir uygulama için çok mantıklı yok muhtemelen PHP için önemlidir, ancak); ama çok kendi sınırlamaları vardır.

Cevap 21/09/2009 saat 03:07
kaynak kullanıcı

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