Closed paulmillr closed 11 years ago
Yeah, when Theseus starts paging it's game over.
There aren't any features I could make optional that would help on large projects (without compromising the API), but policies for partial recording are on the backlog. There's also the bug that Theseus will make shallow copies of objects regardless of how large they are, including buffers like image files. That bug is higher on the backlog.
Thanks for this test case. I'll check it for bottlenecks I haven't discovered yet.
I recently committed some changes to fondue master that ought to make debugging larger projects manageable. I tried to test them with your project, but I ran into a problem. Here's what I did.
git clone https://github.com/brunch/brunch.git
(I used https instead of SSH)cd brunch
npm install
(This seemed necessary)coffee -bo lib/ src/
cd ..
./brunch/bin/brunch new test
The last step failed with:
26 Jun 14:40:13 - log: Copying local skeleton...
26 Jun 14:40:13 - log: Created skeleton directory layout
26 Jun 14:40:13 - log: Installing packages...
26 Jun 14:40:13 - error: npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/tlieber/src/test/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Darwin 12.3.0
npm ERR! command "/usr/local/Cellar/node/0.10.8/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/tlieber/src/test
npm ERR! node -v v0.10.8
npm ERR! npm -v 1.2.23
npm ERR! path /Users/tlieber/src/test/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/tlieber/src/test/npm-debug.log
npm ERR! not ok code 0
The test/
directory is empty except for npm-debug.log
. I tried checking out the 1.6.7 tag with the same result.
brunch is used with brunch-with-chaplin
as submodule. you’ve did the right thing, except you forgot to clone submodules (git clone --recursive
)
Got it, thanks! I don't have a problem building that skeleton with node-theseus. If you know of a larger project I should test the build script on, please let me know.
$ ~/src/node-theseus/bin/node-theseus ../brunch/bin/brunch build
26 Jun 15:06:48 - info: compiled in 913ms
$ ../brunch/bin/brunch build
26 Jun 15:06:53 - info: compiled in 531ms
(I'm testing on the master branches of Theseus, node-theseus, and fondue, so your results may vary until the next releases (probably tomorrow).)
Try cloning this brunch app https://github.com/paulmillr/ostio and executing brunch build there.
Although even on default skeleton the stuff was very slow for me
You’re running Brackets editor with brunch source code (lib/) opened, right?
Building Ostio takes longer (4842ms with node-theseus, 2237ms without). My node process gets to 170MB memory (it was 100MB on the skeleton project). I ran it with the brunch project open in Brackets.
One of the things I added was a check that would pause instrumentation if there were more than 4,096 function invocations in a single tick (resuming on the next tick). Building Ostio does trigger it once, but even when I bump the cap so that it doesn't, it doesn't take more than 5 seconds to complete.
Very weird stuff then, i’ll definitely try new release ASAP
I'll let you know when it's released. :)
in mid-sized node app, theseus with brackets 25 eats 2+gb of ram and then crashes w
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
.Also, speed slowdown is like 95-99%.
You can try it by yourself
git@github.com:brunch/brunch.git
coffee -bo lib/ src/ && cd ../
./brunch/bin/brunch new test
cd test
node-theseus ../brunch/bin/brunch build