473,769 Members | 5,869 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Serialize / Unserialize

Some have suggested that using serialize()
and unserialize is faster than reading/writing
an array to disk as a simple text file using
$array = file('numbers.t xt');

Can anyone justify this?

It seems to me that there is some overhead
associated with calling unserialize().

Is this actually faster than using file()?

Regards,

Andrew

Jul 17 '05 #1
2 2801
On Mon, 21 Jun 2004 13:23:02 +0000, Andrew wrote:
Some have suggested that using serialize()
and unserialize is faster than reading/writing
an array to disk as a simple text file using
$array = file('numbers.t xt');

Can anyone justify this?

It seems to me that there is some overhead
associated with calling unserialize().

Is this actually faster than using file()?

Regards,

Andrew


I would guess that serialize/unserialize is faster because it
involves memory-only operations whereas file() involves disk access. Disk
access is *always* slower than memory access!

Just a hypothesis on the reason, though. No hard facts to back it up.

--
Jeffrey D. Silverman | jeffrey AT jhu DOT edu
Website | http://www.wse.jhu.edu/newtnotes/

Jul 17 '05 #2

"Andrew" <an****@nowhere nohow.com> wrote in message
news:Wi******** *********@newsr ead1.news.pas.e arthlink.net...
Some have suggested that using serialize()
and unserialize is faster than reading/writing
an array to disk as a simple text file using
$array = file('numbers.t xt');

Can anyone justify this?

It seems to me that there is some overhead
associated with calling unserialize().

Is this actually faster than using file()?


I was the one who said it so I'll explain my rationale. Serialize is
marginally faster than file because the format is optimized for easy parse.
Take the following array:

$a = array("This is a test", "Hello world");

Run it through serialize() and you get:

a:2:{i:0;s:14:" This is a test";i:1;s:11: "Hello world";}

How look at this carefully. "a:2" indicates an array with two elements. So
now the start PHP knows how large the array is going to be, and can thus
allocate enough memory from the getgo to hold the entire array. In case of
file() the function does not know how many lines there will be, so it has to
reallocate memory continually as more lines are read.

Now look at "s:14". That stands for a string with a length of 14. Again, PHP
knows how long the string is going to be before it reads the data, so it can
allocate a buffer of just the right size. Moreover, since it knows so many
characters the string takes up in the input data, it can jump ahead to the
next variable without having to examine each characters in the string. In
contrast file() needs to look at every character to know where a newline
starts.

Using serialize also means you don't have to deal with the carriage returns
at the end of every element.
Jul 17 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2673
by: James Sleeman | last post by:
Hi all, i just spent an hour rifling through code to find the cause of a problem only to find it's an oddity with serialization and recursive objects, so figured I'd post for the next person who gets the same problem (y'all might find it interesting too)... ********************************* Symptoms ********************************* When unserializing a previously serialized object, the __wakeup() function is mysteriously called more...
8
4254
by: John Smith | last post by:
Hi, I am using a custom Session Handler. session_set_save_handler is working well. But i want to read the data direct from the database. My problem: php don't uses the standard serialize function:
7
5148
by: richbl | last post by:
Hello all, I have a question about unserializing a single array element from a serialized array. Can this be done, or must I first unserialize the array, and then access the element? For example, given: $data = serialize(array('4.50','0.00','0.00'));
6
1954
by: sandy | last post by:
With java servlets I can declare complex object-oriented class structures as session variables in a servlet. That means I can have a complex HTML form that submits iteratively back to the server for interim updates, before a final save (interim post events allow users to add values to dropdown menus, collapse parts of the form, etc). And it all works because Java so seamlessly takes care of serializing a complex class structure for...
2
2983
by: onefastmustang | last post by:
I have a cookie that I serialize and set as follows.. $searchdata = $state; $searchdata = $country; $searchdata = $radius; $searchdata = $radius_zip; if ($_GET){ foreach ($_GET as $value){ $searchdata = 1; }
1
1635
by: Mark | last post by:
I'd like to take an instance of a class, and serialize it to a file on my computer. No security required on the file. Then, I'd like to be able to unserialize the file later and use the instance again. A quick sample on how to do this would be grand. A little pseudo code below just to clarify what type of class I'd like serialize to a file ... Thanks in advance. Mark
2
2485
by: Derek Martin | last post by:
Hey list, I have an arraylist containing some objects that I want to serialize and send over the internet and then deserialize back into the arraylist of objects. What I have so far: Dim myfeeds As New ArrayList myfeeds = <<method that populates arraylist with objects>> Dim BinFormatter As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
7
3560
by: powellgg | last post by:
I've just taken over a PHP website and am converting it to ASP.NET (don't shoot!). I'm not a PHP guy so I'm doing a lot of searching for things that I aren't obvious, and I'm hoping I'll be able to get help from here for things I can't find on the Internet. Here's the first... Here's the PHP code: setcookie("site_search_keyword","", time() - 3600); $site_search_keyword = unserialize(base64_decode($site_search_keyword));
1
497
by: VooDoo | last post by:
Hi, I am using the serialize and unserialize to put and get data from mysql database. I think i could optimise the way i handle the data, but not really sure how. What is the best way to happend data to a serialised field? I currently unserialise, parse the table, and my new value a the end of the table... Is there a quick/better way to do it??
0
9579
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9416
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9849
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8861
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7393
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6661
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5293
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5433
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
2810
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.