Agen Terpercaya   Advertise
 
 
 
Pasang iklan, hanya lewat Contact Us.
Waspada penipuan iklan. Klik di sini untuk melihat daftar penipu.

Pilih Mana PHP JSON atau Serialize

semprot_sejak_dulu

Moderator
Staff member
Moderator
Daftar
1 Jan 1970
Post
175
Like diterima
723
Lokasi
Semprot.com
Bimabet
JSON bisa mengubah array menjadi string dengan format tertentu.
Dan juga sebaliknya, JSON bisa mengubah string terformat menjadi array.
Format JSON dikenali tidak hanya di PHP tapi juga di javascript misalnya.

Fungsi serialize() juga sama seperti JSON, bisa mengubah array menjadi string dengan format tertentu dan sebaliknya.
Tapi fungsi serialize() hanya dikenali di PHP.

Kelebihan JSON :
  • cross-language, tidak hanya di PHP.
  • Lebih cepat daripada serialize() pada proses "encode" data.

Kekurangan JSON :
  • Lebih lambat daripada unserialize() pada proses "decode" data.
  • Tidak bisa menyimpan data dalam bentuk object (khususnya di PHP).
  • Dibutuhkan PHP dengan versi 5 (PHP 5 >= 5.2.0, PECL json >= 1.2.0).

Kelebihan Serialize :
  • Lebih cepat daripada json_decode() pada proses "decode" data.
  • Bisa menyimpan data dalam bentuk object di PHP.
  • Tidak butuh PHP dengan versi tinggi. Cukup dengan PHP versi 4.

Kekurangan Serialize :
  • Lebih lambat daripada json_encode() pada proses "encode" data.

Dari data2 di atas, misalnya tujuan kita hanya di bahasa PHP, misalnya menyimpan / membaca array di / dari database, maka kita cek terlebih dahulu. Di koding PHP kita mana yang lebih banyak prosesnya, proses encode (writing) / decode (reading).

Kalau lebih banyak proses writing, pakailah JSON.
Kalau lebih banyak proses reading, pakailah serialize.

:beer:

Sebagai tambahan, ini adalah kode untuk bandingin JSON & serialize baik di proses writing / reading.

PHP:
<?php
ob_start();
$s = '';
define('TEST_COUNT', 1000);// number of tests
define('TEST_MODE', 'decode');// decode or encode

//  Make a bit, honkin test array
//  You may need to adjust this depth to avoid memory limit errors
//$testArray = fillArray( 0, 100 );
$a = array(
	0 => 23,
	4 => 213,
	'awdawd' => 'awd'
);
$testArray = array_merge($a, range(1, 100));

$json_string = json_encode($testArray);
$serialized_string = serialize($testArray);

$json_win = 0;
$serialize_win = 0;

$json_perc_total = 0;
$serialize_perc_total = 0;

if (TEST_MODE == 'decode') {
	for ($i = 1; $i<= constant('TEST_COUNT');$i++) {
		//  Time json encoding
		$start = microtime( true );
		//json_encode( $testArray );
		json_decode($json_string);
		$jsonTime = microtime( true ) - $start;
		//echo "JSON encoded in $jsonTime seconds<br>";

		//  Time serialization
		$start = microtime( true );
		//serialize( $testArray );
		unserialize($serialized_string);
		$serializeTime = microtime( true ) - $start;
		//echo "PHP serialized in $serializeTime seconds<br>";
	
		$json_perc = ($serializeTime / $jsonTime - 1 ) * 100;
		$serialize_perc = ($jsonTime / $serializeTime - 1 ) * 100;
	
		$json_perc_total += $json_perc;
		$serialize_perc_total += $serialize_perc;
	
		//  Compare them
		if ( $jsonTime < $serializeTime )
		{
			$s .= "<strong style=\"color:#009900\">json_decode()</strong> was roughly " . number_format( $json_perc, 2 ) . "% faster than unserialize()";
			$json_win++;
		}
		else if ( $serializeTime < $jsonTime )
		{
			$s .= "<strong style=\"color:#CC0000\">unserialize()</strong> was roughly " . number_format( $serialize_perc, 2 ) . "% faster than json_decode()";
			$serialize_win++;
		} else {
			$s .= 'Impossible!';
		}
		$s .= '<br />';
	}
} else {
	for ($i = 1; $i<= constant('TEST_COUNT');$i++) {
		//  Time json encoding
		$start = microtime( true );
		json_encode( $testArray );
		$jsonTime = microtime( true ) - $start;
		//echo "JSON encoded in $jsonTime seconds<br>";

		//  Time serialization
		$start = microtime( true );
		serialize( $testArray );
		$serializeTime = microtime( true ) - $start;
		//echo "PHP serialized in $serializeTime seconds<br>";
	
		$json_perc = ($serializeTime / $jsonTime - 1 ) * 100;
		$serialize_perc = ($jsonTime / $serializeTime - 1 ) * 100;
	
		$json_perc_total += $json_perc;
		$serialize_perc_total += $serialize_perc;
	
		//  Compare them
		if ( $jsonTime < $serializeTime )
		{
			$s .= "<strong style=\"color:#009900\">json_encode()</strong> was roughly " . number_format( $json_perc, 2 ) . "% faster than serialize()";
			$json_win++;
		}
		else if ( $serializeTime < $jsonTime )
		{
			$s .= "<strong style=\"color:#CC0000\">serialize()</strong> was roughly " . number_format( $serialize_perc, 2 ) . "% faster than json_encode()";
			$serialize_win++;
		} else {
			$s .= 'Impossible!';
		}
		$s .= '<br />';
	}
}
$perc1 = round($json_win / constant('TEST_COUNT') * 100, 2);
$perc2 = round($serialize_win / constant('TEST_COUNT') * 100, 2);

echo '<h1>Mode = '.TEST_MODE.'</h1>';
echo "<p><strong style=\"color:#009900\">JSON</strong> Win = $json_win ($perc1 %) average perc = ".round($json_perc_total / constant('TEST_COUNT'), 2).",<br />
<strong style=\"color:#CC0000\">Serialize</strong> win = $serialize_win ($perc2 %) average perc = ".round($serialize_perc_total / constant('TEST_COUNT'), 2)."</p>";
echo $s;
?>
 
gan ane ga ngerti buat apan ya ni?hehe
 
nice info, tapi saya lebih prefer ke JSON, apalagi untuk pengembangan berbasis REST, bisa lebih mudah penggabungannya dengan aplikasi mobile seperti android, iphone, java, dll
 
User di-banned, maka konten otomatis dihapus.
User is banned, content is deleted automatically.
 
Terakhir diubah:
Ane jg prefer json. Alasan utama adalah cross language nya.
 
Lebih milih Json deh krn bisa lebih banyak nyimpan indexing
 
User di-banned, maka konten otomatis dihapus.
User is banned, content is deleted automatically.
 
Json bang, soale lebih universal. Buat jscript di client pro json bukan php serialize. Memang transfer data lebih banyak daripada serialize sih. Tapi sekarang data murah daripada 10 th yg lalu.
 
Bimabet
Sebenernya sama aja.. Tinggal biasa pake apa...lebih baik pakai yg sudah biasa dipake jadi lebih efektif waktunya..jika kerja sebagai programer ada DL nya...daripada pake yg lbh up tapi malah menghambat kerja..

Temen kerja skaligus guru nubie..malah smp skrg masih menggunakan editor bawaan windows buat nulis coding.padahal nubi mikir banyak editor yg lebih praktis dengan fitur yg lebih modern dan lengkap..tpi beliau ngasih alasan sprt diatas..dan sekarang alasan itu nubi buat sbg pegangan...meski sekarang beliau sudah gak sama nubi lagi :( ...yg penting kerjaan selesai tept waktu dan hasilna sama sprt yg sdh di design sejak awal dalam fikiran...yang terpnting hasil na...

Menurut nubi begini..beda orang beda resepsinya masing2..voleh lain dan boleh coba hal yg baru yg belum pernah dicoba buat pembelajaran..

tidak mengurangi rasa hormat saya kepada mod @semprot .
 
Jav Toys
Gaple Online Indonesia
Pasang iklan hanya lewat CONTACT US
Back
Top
We are now part of LS Media Ltd