Comment on Recommended reading: Why mobile web apps are slow (Drew Crawford) by Brian M
@pjmlp Suspect the actual GC is probable (hopefully!) well optimised, its the data (memory) that it has to process that might be less so. Given the amount of time the JIT has to optimise compared to a native compiler you may well have an interesting question! Be surprised if the c++ standards people didn’t consider the viability of GC given its attractions to developers. The current c++ smart pointers are not a million miles away from it, or a least from a sort of declare and forget point of view! This might hint that GC is just too expensive? Read More »
Comment on Recommended reading: Why mobile web apps are slow (Drew Crawford) by pjmlp
@M.S. Babaei: I did some contributions to Go before giving up on his simplicity. I was thinking more in the Oberon language family, Modula-3, D, Haskell, OCaml, Lisp. Read More »
Comment on Recommended reading: Why mobile web apps are slow (Drew Crawford) by Timo Kinnunen
@Herb: I don’t feel that “fighting the design” is a totally unbiased characterization. If you’re trying to get low-latency framerates, is the Desktop Window Manager actively working against you so you’re forced to fight the design of Windows? And then when Windows 8.1 gets GetFrameLatencyWaitableObject and SetMaximumFrameLatency, is it because the design of Windows was changed from anti-low-latency to pro-low-latency? No, a more likely explanation is that enough people made enough noise to get some other features bumped for these controls that let you work better with and within this managed windowing environment. Likewise garbage collectors provide settings to tune. Likewise if one started providing SetStopTheWorldGCDeferment that would be an incremental improvement rather than a design U-turn. But suppose you don’t want any GC pauses at all and reject GC completely? In that case you can’t go on to make a game that has a screen that says “Stopping the game world while managing memory…” aka “Loading…” nor can you be managing memory for LuaJIT, because that would be ironic. Read More »
Comment on Recommended reading: Why mobile web apps are slow (Drew Crawford) by pjmlp
@Brian M: C++11 defines an API for GC integration, it is up to the compiler vendors to offer a GC if they feel like to. C++ can only have a conservative GC due to the way the language allows for pointer tricks and by being unsafe by default. The current smart pointers suffer from performance problems, because every change of ownership carries with it the weight of counter changes. As well as some complexity as shown by Herb post about how to pass pointers around when doing functions and member functions calls. It would be nice if the standard also defined that the compilers should be smart pointer aware and were able to elide smart pointer operations if at the exit of a basic block the counter is to have the same value as at the entry. This is done in Objective-C ARC and ParaSail, for example. But yeah, what I really miss are comparison with optimizing compilers for other languages, and the main issue is that they don’t exist. VM based languages took over the enterprise the last decade and developers not versed in compiler design tend to mix those language features with being managed, while being unaware that quite a few languages with similar set of features, but with native compilers, failed to make an impression in the industry. So the existing compilers for those languages are mostly good enough compilers compared with the 30 years of compiler research that has been put into commercial C and C++ compilers. For example, how performant would Modula-3 or Active Oberon be if they haven’t died in academia and had an optimizer with 30 years of research built into the compiler, even with GC. Or Microsoft’s own Sing# if Singularity didn’t died as project? Read More » | ||||
Saturday, July 13, 2013
obile web apps
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment