> On Sep 22, 2015, at 11:45 AM, Stéphane Letz <l...@grame.fr> wrote: > >> Can you file a bug with exact repro steps? I played with these and did not >> hear glitches. Maybe I used a different version of WebKit or different >> hardware than you. Filing a bug with specifics can help make these things >> clear. > > What version of WebKit/Safari are you using ? > >> >> Theoretically, this kind of real-time workload is probably the best argument >> for an execution environment that doesn’t have a warm-up. On the other >> hand, it could just be a silly bug in our engine. We usually do pretty well >> at cold code execution. > > I'll try again, but if it is with an older version of Webkit/Safari and you > dont' hear the problem then... > >> >>> >>> So my understanding is that we would be in a very similar case if we >>> directly use JavaScriptCore. Is there any safe way to be sure the JS code >>> is actually compiled before executing it? >> >> No. >> >>> By calling the "compute" code thousand of time outside the audio callback? >>> Or is there any other more reliable trick to do that? >> >> That’s the most reliable. >> >> But I just want to be clear. The fact that the act of compiling code causes >> memory allocation is just he tip of the iceberg. There’s no way to prevent >> JS execution from allocating, and JS has no guarantees about what operations >> may lead to memory allocation. Even “a+b” could allocate even if a and b >> are both numbers, provided the right conditions are met. > > Even in pure asm.js code? So then we would need to go for a more reliable > Audio callback ==> double buffer ==> JS (asm.js) code called in a high > priority thread scheme (but not real-time)? (so similar design to what > WebAudio worker is supposed to achieve : > https://developer.mozilla.org/fr/docs/Web/API/Web_Audio_API#Audio_Workers)
The Audio Worker thread will not run at a higher-than-normal priority (see <http://webaudio.github.io/web-audio-api/#the-audioworker-interface>, paragraph 2). The only performance benefit of the Audio Worker is that it will continue to be serviced while the main thread is blocked. -Jer > > Stephane > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > https://lists.webkit.org/mailman/listinfo/webkit-dev _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev