官术网_书友最值得收藏!

  • Learn WebAssembly
  • Mike Rourke
  • 246字
  • 2021-08-13 15:38:50

No garbage collection

WebAssembly supports a flat linear memory, which isn't a limitation per se, but requires some understanding of how to explicitly allocate memory to execute code. C and C++ were logical choices for the MVP because memory management is built into the language. The reason why some of the more popular high-level languages such as Java weren't included initially is due to something called garbage collection (GC).

GC is a form of automated memory management wherein memory occupied by objects that are no longer in use by the program is reclaimed automatically. GC is analogous to an automatic transmission on a car. It has been heavily optimized by skilled engineers to operate as efficiently as possible, but limits the amount of control the driver has. Manually allocating memory is like driving a car with a manual transmission. It affords greater control over speed and torque, but misuse or lack of experience can leave you stranded with a severely damaged car. Part of C and C++'s excellent performance and speed can be attributed to the manual allocation of memory.

GC languages allow you to program without having to worry about memory availability or allocation. JavaScript is an example of a GC language. The browser engine employs something called a mark-and-sweep algorithm to collect unreachable objects and free up the corresponding memory. Support for GC languages is currently being worked on in WebAssembly, but it's hard to say exactly when it will be completed.

主站蜘蛛池模板: 渑池县| 津市市| 新巴尔虎左旗| 湘潭县| 宿迁市| 宁明县| 绥中县| 平江县| 仁布县| 榆社县| 阿鲁科尔沁旗| 阜康市| 东海县| 湖北省| 曲松县| 天全县| 华池县| 元江| 望都县| 运城市| 浑源县| 昔阳县| 谢通门县| 交口县| 阿拉善右旗| 江津市| 凤山县| 鸡西市| 景东| 白水县| 白水县| 全南县| 商都县| 阳原县| 两当县| 泰宁县| 中卫市| 资源县| 阿合奇县| 宁波市| 台安县|