Hello,

It would be interesting if you could also time your application in Firefox,
which also has a baseline wasm compiler. That may be a useful data point to
help us determine what to look into further.

Regards,

Dan

On Tue, Dec 11, 2018 at 2:04 AM Goran Milovanovic <goranmilov...@gmail.com>
wrote:

> I'm not really sure what you mean by "hitting a bad case in the VM". Are
> you implying that my code could be doing something highly unusual, which V8
> can't really process effectively? This seems highly unlikely, because the
> application in question is a pretty typical OpenGL program, that just
> renders some fairly primitive textured geometry. I've also tested other,
> even smaller/simpler applications, and performance scaling is pretty much
> linear, at about 1 second of delay per 1MB of wasm code.
>
> Looking at the V8 liftoff post in a little more detail, it seems that the
> compilation pipeline is highly parallelized, and that their benchmarks were
> done on machines that have *at least* 8 hardware threads ... That would
> explain their seemingly impressive results, and it would also explain the
> lackluster performance I observe, on a machine with only 2 hardware threads.
>
> On a more general note: I think my notion of what wasm actually is, and
> what I can expect it to do, was a little skewed. I was under the impression
> that wasm was a hyper efficient IR, that the browser could just trivially
> translate into runnable machine code, with negligible performance impact.
> However, the more I learn about it, the more it seems like any other IR,
> which requires a fairly involved compilation system, which in turn requires
> considerable hardware resources to run at interactive speeds.
>
> On Monday, December 10, 2018 at 7:51:52 PM UTC-5, Alon Zakai wrote:
>>
>> Interesting, it's possible you're hitting a bad case in the VM then. Can
>> you perhaps make a public testcase of your codebase, and we can show it to
>> them?
>>
>> On Sun, Dec 9, 2018 at 11:02 PM Goran Milovanovic <goranm...@gmail.com>
>> wrote:
>>
>>> I'm using the chrome dev tools Network panel to observe relevant events:
>>>
>>> * At the 1.25 second mark, all the necessary files (wasm, data, js, ...)
>>> have been downloaded.
>>> * ----- WASM processing seems to happen here (cpu utilization goes up to
>>> 100%) -----
>>> * At the 4.25 second mark, emscripten prepares the filesystem, and I can
>>> see this by local blob requests for pngs packed in the data file.
>>> * My application's main() begins execution, and that's where
>>> initialization for my application starts.
>>>
>>> The "WebAssembly baseline compiler" flag was set to "Default" ... I
>>> don't know what that actually means, and there doesn't seem to be a way to
>>> know, but just to be sure, I made it explicitly enabled, and it made no
>>> difference.
>>>
>>> When disabled, the processing is slower by an additional 2 seconds, so
>>> it would seem that liftoff is providing some benefit, but nothing that
>>> resembles the drastic scaling visible in their benchmarks.
>>>
>>>
>>> On Sunday, December 9, 2018 at 6:25:55 PM UTC-5, Alon Zakai wrote:
>>>>
>>>> A lot of good stuff has happened since April. The main issue has on the
>>>> browser side, where things are now a lot better. In particular, baseline
>>>> compilers are now common, like V8's Liftoff,
>>>>
>>>> https://v8.dev/blog/liftoff
>>>>
>>>> That should be enabled in Chromium 71, but you can confirm in
>>>> chrome://flags. (3 seconds for 3.6MB sounds high for Liftoff, so perhaps it
>>>> isn't turned on?)
>>>>
>>>> How are you measuring startup time, btw? Aside from browser compilation
>>>> there may be time spend in the download or in the application's startup
>>>> code itself. Running browser profilers can help investigate that.
>>>>
>>>> On Sun, Dec 9, 2018 at 12:30 PM Goran Milovanovic <goranm...@gmail.com>
>>>> wrote:
>>>>
>>>>> I've made a thread back in April, with a similar focus:
>>>>> https://groups.google.com/forum/#!searchin/emscripten-discuss/still$20slow%7Csort:date/emscripten-discuss/Ft3UT0PHX_w/gXUMRN4hAgAJ
>>>>>
>>>>> While somewhat useful, I think that thread was a bit side-tracked,
>>>>> because instead of discussing why WASM startup was so slow, we became more
>>>>> focused on why startup for WASM was slower than startup for asm.js (which
>>>>> was an issue that I wasn't even aware of, until it was mentioned by 
>>>>> another
>>>>> user). It seems that this imbalance was resolved since then, but the
>>>>> fundamental issue of slow WASM startup still remains, because now it 
>>>>> starts
>>>>> up about as fast as the old asm.js output, and, if I understood the core
>>>>> promises of WASM (as a pre-processed, binary format), it should be
>>>>> significantly faster than that.
>>>>>
>>>>> My wasm file is 3.6M large. I'm using Emscripten 1.38.20 to compile,
>>>>> and running on Chromium 71. It takes ~3 seconds for the application to
>>>>> start up.
>>>>>
>>>>> I'm just wondering if this is a problem in the browsers, or in the
>>>>> emscripten toolchain, or somewhere else (assuming that's possible), and
>>>>> also if there are plans for addressing this in the not too distant future?
>>>>>
>>>>> Thanks.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "emscripten-discuss" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to emscripten-discuss+unsubscr...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "emscripten-discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to emscripten-discuss+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to emscripten-discuss+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to emscripten-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to