I am using add_person.cc provided in the sample file. The only change I have
done is,
a while loop around this code. So it's same record inserted multiple times.


// Write the new address book back to disk.fstream output(argv[1], ios::out
| ios::trunc | ios::binary);
*int nRecords = 100000;*
*while ( nRecords-- )*
*{*    if (!address_book.SerializeToOstream(&output)) {
      cerr << "Failed to write address book." << endl;
      return -1;
    }*}*

On Mon, Mar 22, 2010 at 1:34 PM, Daniel Wright <dwri...@google.com> wrote:

> The most likely cause is a bug in your code where there's something you
> aren't clearing each time you write a record, so at each iteration in your
> loop, the record you're writing is getting bigger.  Of course I can't say
> for sure without seeing the code.
>
> Daniel
>
> On Mon, Mar 22, 2010 at 1:13 PM, Vinit Mahedia <shortempe...@gmail.com>wrote:
>
>> Hi Jason,
>>
>> Thanks for the quick reply.
>>
>> I am not surprised by the increase in file size, But I am under impression
>> that If I insert the same record
>> thousand times, the size of file should be large accordingly,
>>
>> e.g, assume that one record generates the file of size 32 bytes; with1024
>> records should sum up to 32K
>> size or close to that but it does not and that is why I am surprised. The
>> growth in size is not linear and
>> that was the reason I posted my findings. I am a student so might be
>> missing a small concept or anything
>> here, if so, apologies in advance for taking your time.
>>
>> Once again appreciate your help,
>>
>>
>>
>> On Mon, Mar 22, 2010 at 12:42 PM, Jason Hsueh <jas...@google.com> wrote:
>>
>>> If you're measuring using sizeof(), you won't account for memory
>>> allocated by subobjects (strings and submessages are stored as pointers).
>>> You should use Message::SpaceUsed() instead. The inmemory vs serialized size
>>> is going to depend on your proto definition and how you use it. If you have
>>> a lot of optional fields, but only set one of them, the serialized size will
>>> likely be much smaller than the in memory size. If you have lots of large
>>> strings, they're probably going to be pretty close since both sizes will be
>>> dominated by the actual bytes of the strings.
>>>
>>> It sounds like you are surprised that the serialized size increases as
>>> you increase the number of records. What exactly do you expect to happen
>>> here?
>>>
>>>
>>> On Mon, Mar 22, 2010 at 12:15 PM, Vinit <shortempe...@gmail.com> wrote:
>>>
>>>> I was testing to see the upper limit for numbers of records in one
>>>> file.
>>>> I used the addressbook example, and I noticed that for one record
>>>> it generates file double the size.
>>>>
>>>> for ex. size of the class I was putting into it was 48 bytes and the
>>>> file
>>>> was of 97 bytes on ubuntu 9.10.
>>>>
>>>> Now, I go test it with 1000 records bang! it goes many fold and with
>>>> records in hundreds of thousands, file size increases in many folds.
>>>>
>>>> Has anyone investigated around this area ? I did not note down the
>>>> exact numbers as I thought someone should already have done it.
>>>>
>>>> Please let me know if you want the detail test numbers, I can run
>>>> through it again and provide you with information.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Protocol Buffers" group.
>>>> To post to this group, send email to proto...@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/protobuf?hl=en.
>>>>
>>>>
>>>
>>
>>
>> --
>> Vinit
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To post to this group, send email to proto...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/protobuf?hl=en.
>>
>
>


-- 
Vinit

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to