跨平台的 .NET 运行环境 Mono 3.2 新特性
Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新。
Mono 3.2 主要新特性:
- LLVM 更新到 3.2 版本,带来更多的编译优化
- 默认使用 SGen Garbage Collector 垃圾收集器,提供3种新的实验模式:Low pause mode、Low promotion nursery、Mostly precise stack scanning;
- FullAOT编译器生成更优化的代码
- Mono 3.2 基础类库可构建完整 Xamarin 的移动 profile
- 降低编译后的文件包大小(对比3.x系列版本,尺寸缩减并不明显)
- 性能提升
- 解析性能大大增长
- LINQ查询更快
- 大对象的克隆和装箱速度提升两倍
- 优化Marshal.Read/Write方法
详细介绍请看发行说明。
Monkey space 2013 from Miguel de Icaza
上面的ppt需要FQ观看,所以把这个ppt的内容和大家分享下,请看下面的截图:
这张PPT介绍的是Mono 3.2的内容已经覆盖桌面、服务器和移动端,支持.NET 4.5的核心功能包括基础类库和c# 5.0 .对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新, 如果是新部署的Mono环境可以考虑直接使用Mono 3.2版本了,这是一个正式发布的版本,从2.10.8到3.2 已经持续开发了2年的时间,中间经历好多的beta测试版本。
Mono 3.2版本有很多改变,这是一个完全成熟的.NET框架,包括垃圾回收器方面得到极大的提升,现在默认的GC实现称为SGen(Simple Generational),除此之外的选择还有Boehm(http://jezng.com/2012/02/How-the-Boehm-Garbage-Collector-Works/),Boehm GC的基本思想是在malloc()时记录分配空间的元信息,然后在数据中保守地检查每个可能为指针的整数。其好处是只要截malloc()和free()两个接口即可,因此可被用于uncooperative环境(即C/C++这种指针和整数界限模糊的情况),缺点是由于做法保守可能会有垃圾无法被回收。另外Boehm中对象不能被移动,所以会有fragmentation。SGen的主要思想是将对象分为两个generation:较新的称为generation 0,较老的称为generation 1。这种设计是基于这样的一个事实:程序经常会申请一些小的临时对象,用完了马上就释放。而那些一段时间没释放的,往往很长时间都不会释放,如全局对象等。基于这个原则,SGen将GC分两个阶段:minor collection和major collection,分别用于回收nursery heap和major heap中的内存。
Mono 3.2 对移动开发方面也是有很多的改进,这部分主要是涉及到Android和ios上开发
Mono 3.2里头还包含了很多微软开源的框架:
Mono 3.2 跨平台框架方面的内容:
后面的还有20张ppt是讲Mono项目团队正在做的事情,也有很多激动人心的特性:
MonkeySpace Talk Slides and Notes: http://www.fallingcanbedeadly.com/posts/monkeyspace-talk-slides-and-notes/
Mono:SGen GC和其他方面的提升,PlayScript和CppSharp 正在开发中
- SoapUI实践:自动化测试、压力测试、持续集成
- 如何把kotlin+spring boot开发的项目部署在tomcat上
- 使用开源项目Alipay.AopSdk.Core完成支付宝网页登录
- vhost-user 简介
- 把玩爬虫框架Gecco
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-EF执行SQL语句与存储过程
- GitHub上大热的Deep Photo终于有TensorFlow版了!
- 资源 | Style2paints:专业的AI漫画线稿自动上色工具
- Github 项目推荐 | 真实全景图像强化学习 AI 平台 —— Matterport3DSimulator
- Github 项目推荐 | 用 Pytorch 实现的 Capsule Network
- 野外动物监测图像挑战赛:预测捕捉到的野外图像是否包含动物
- Github 项目推荐 | 用 Keras 实现的神经网络机器翻译
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Tree - 94. Binary Tree Inorder Traversal
- Tree - 144. Binary Tree Preorder Traversal
- grpc调用主要流程分析(一)
- Array - 42. Trapping Rain Water Hard
- Go modules 简介
- Spring事务的传播行为
- String - 71. Simplify Path
- 性能测试工具——wrk
- String - 67. Add Binary
- Math - 50. Pow(x, n)
- String - 44. Wildcard Matching
- DFS&BFS - 37. Sudoku Solver
- Array - 36. Valid Sudoku
- Array - 57. Insert Interval
- Binary Search - 378. Kth Smallest Element in a Sorted Matrix