On Sun, Aug 5, 2012 at 3:31 PM, Joshua Gross <[email protected]> wrote:
> There may be a better answer for this, but JSON is actually more rigidly
> structured than standard JavaScript. So, it makes sense to me that a more
> specialized parser would need more memory than just sending JavaScript code
> to the VM.

That doesn't make sense to me.  A simpler and more strict language is
easier to parse, not harder.

However, I'm pretty sure more effort has been put into parsing large
JS files than has been put into parsing large JSON files.  It's not
uncommon to run across poorly written websites with megabytes of JS
code that needs to be parsed at startup.

As far as what concretely causes this, I think this will involving
digging into the V8 source code or getting an answer from someone on
the V8 team.  Also there is a possibility that node is doing something
dumb and buffering too much when loading the file.

>
> -- Joshua Gross
> Christian / SpanDeX, Inc. / BA Candidate of Computer Science, UW-Madison
> 2013
> 414-377-1041 / http://www.joshisgross.com
>
> On Aug 4, 2012, at 9:43 AM, Kei Son <[email protected]> wrote:
>
> I have a huge JSON file, right, it's 78MB.
> When I just require it from node-cli it takes 450MB memory footprint. I can
> understand that is bloated 6x times because the JSON file is just a string
> in the storage, but it needs spaces for indexing, making some padding,
> optimization, linking and whatever else when it comes on memory.
>
> But the other hand, when I add some strings like "module.exports=" at the
> top of the JSON file and require it as a normal js file, it takes only
> 200MB. I thought requiring as JSON would be faster and smaller than as JS.
> Because there are no seeking time for code-optimization and no extra process
> at the Node.js side.
>
> What's different between two and why?
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to