"consistent asynchronous pattern" is expected for IO-bound tasks. CPU-bound solutions are less consistent as 1) it's a little bit outside of node.js scope 2) there are more solutions 3) it depend a lot on domain area (not all people crunch fibonacci numbers) and hardware ( number of CPUs/GPU/vector processing/special hardware/etc)
>From your v8.log it looks like you don't need to optimise anything Andrey On Tue, Jun 18, 2013 at 9:59 AM, Robert Steckroth <[email protected]> wrote: > Wow, you have many solutions to that one. I was under the impression that a > consistent asynchronous patterned was expected in NodeJs programming. I > think I understand how it works now. It just serves users with data when it > is time/ready to. I was thinking the wrong way about the whole thing. I did > find your solutions interesting however, and I thank you for them (except > setTimeout, jessh;). > > Also, I posted the processed v8.log file here --> > http://dpaste.com/hold/1248901/ > It does not seam like all of those 0%'s are a good thing but I still need to > go over some docs to grasp what it means. > > > On Mon, Jun 17, 2013 at 12:45 AM, Andrey <[email protected]> wrote: >> >> Do you have any numbers to proof that you need to optimise here? How much >> time does it usually take for makeXmlFromString to complete? Could you post >> first lines of processed v8.log after running with --profile? >> >> If you are sure that this function does block io loop for some significant >> amount of time (say, 10ms - how small this number should be really depend on >> what you expect from your application) then you have following options: >> - write C++ addon, use libuv work queue ( >> http://nikhilm.github.io/uvbook/threads.html#libuv-work-queue ). Measure >> again, note that it could be actually slower than JS only ( see >> http://kkaefer.github.io/node-cpp-modules/#benchmark-thread-pool ) >> - use threads via https://github.com/xk/node-threads-a-gogo >> - as already suggested, you can try allow IO loop to run in parallel with >> your code by splitting in smaller functions wrapped in setTimeout >> - move your code to separate node.js process, use some kind of RPC to >> send arguments/receive results (for example, fork/message - >> http://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options >> ) >> >> On Monday, 17 June 2013 08:26:46 UTC+10, surgemcgee wrote: >>> >>> So, how do I get the function to be asynchronous if I added other >>> functionality? Is there a module to import? I just do not get the threading >>> aspect of it all I guess. >>> >>> >>> On Sun, Jun 16, 2013 at 4:37 PM, Angel Java Lopez <[email protected]> >>> wrote: >>>> >>>> Hi! >>>> >>>> Ummm... makeXmlFromString, beginning at line 83, could directly return >>>> the value xmlFile instead of calling a callback. No I/O in its body, so you >>>> don't leverage the power of node.js to manage async I/O >>>> >>>> Maybe, at line 61, when req.on('data'....) you could start to create the >>>> xml, incrementally. But if it is hard, that's ok, for a first approach >>>> >>>> Any comments? >>>> >>>> Angel "Java" Lopez >>>> @ajlopez >>>> >>>> >>>> >>>> On Sun, Jun 16, 2013 at 5:27 PM, Robert Steckroth <[email protected]> >>>> wrote: >>>>> >>>>> I have a server which parses through a text file and creates a XML >>>>> page. >>>>> >>>>> The XML creation can involve a lot of loops (up to ~8000). >>>>> >>>>> I am confused regarding the asynchronous nature of NodeJs. >>>>> >>>>> Would the below function benefit from a non-blocking call? Or does the >>>>> createServer function maintain its own thread for each incoming request? >>>>> >>>>> >>>>> You can see this function call on line: 65 of the provided Node file. >>>>> >>>>> makeXmlFromString(textOutput, function(xmlText) >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> http://bazaar.launchpad.net/~robertsteckroth/stock-ticker-mobile-app/proxy/view/head:/server/stock_proxy_server.js >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Or maybe this file is done correctly... I am having a lot of trouble >>>>> getting the scoop on async in JavaScript :0 >>>>> >>>>> -- >>>>> >>>>> Bust0ut, Surgemcgee: Systems/Web/Software Engineer >>>>> >>>>> "Freedom is empowered by those without power" - Robert Edward Steckroth >>>>> II >>>>> "Injustice, regarding the internet, is fashioned through laws and >>>>> enforcement" - Robert Edward Steckroth II >>>>> "Reality is the fuel of the universe and the roadblock to human >>>>> understanding" - Robert Edward Steckroth II >>>>> >>>>> >>>>> -- >>>>> -- >>>>> 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 >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "nodejs" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>> >>>> >>>> -- >>>> -- >>>> 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 >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "nodejs" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>> >>> >>> >>> >>> -- >>> Bust0ut, Surgemcgee: Systems/Web/Software Engineer >>> >>> "Freedom is empowered by those without power" - Robert Edward Steckroth >>> II >>> "Injustice, regarding the internet, is fashioned through laws and >>> enforcement" - Robert Edward Steckroth II >>> "Reality is the fuel of the universe and the roadblock to human >>> understanding" - Robert Edward Steckroth II >>> >>> >> -- >> -- >> 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 >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > > > > -- > Bust0ut, Surgemcgee: Systems/Web/Software Engineer > > "Freedom is empowered by those without power" - Robert Edward Steckroth II > "Injustice, regarding the internet, is fashioned through laws and > enforcement" - Robert Edward Steckroth II > "Reality is the fuel of the universe and the roadblock to human > understanding" - Robert Edward Steckroth II > > > -- > -- > 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 > > --- > You received this message because you are subscribed to a topic in the > Google Groups "nodejs" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/nodejs/qzOkCtimKn4/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- 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 --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
