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
