2016 微软最新开源软件推荐
#长按上图识别二维码,参与OSC源创会年终盛典#
摘要
本文为大家推荐 开源中国( oschina ) 软件库收录的 2016年 微软最新开源软件。
CPU 和内存性能分析工具 PerfView
PerfView 是微软开源的 CPU 和内存性能分析工具。它能以多种方式收集和观察 ETL 文件,拥有强大的群组运算能力。
主要功能如下:
● 非侵入性收集
● Xcopy 部署
● 千兆字节堆栈
● 快照对比
● 文件转储
● 配置文件比较
● CPU 性能追踪
● 原生和混合代码托管
● XPerf 日志阅读
建立 perfview 需要的工具:
Visual Studio 2013 或更高版本,建议 Visual Studio 2015 。
怎么创建和生成 perfvie
在 Visual Studio 中打开 src/PerfView/Perfview.sln 文件,选择 Build -> Build Solution ,即可创建。生成的 PerfView.exe 文件是以 src/PerfView/bin/BuildType/PerfView.exe 命名,配置好后即可使用。
详情:https://www.oschina.net/p/perfview
VC++ 打包工具 vcpkg
vcpkg 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 Windows 平台上获取 C 和 C++ 库.
vcpkg 自身也是使用 C++ 开发的 (而其他的 C++ 包管理大多并不是 C++ 开发的),并且 vcpkg 能够帮助用户在 Visual Studio 中,更好的使用这些安装好的库.
vcpkg 整合了 git,构建系统整合的 CMake,而绝大多数的 C++ 项目都可以直接或者间接的方式使用 CMake创建原生项目文件并构建.
vcpkg遵循一下原则:
● 开放源码
● 无需安装
● 支持重发构建
● 自定义生成
● 社区参与贡献
● 端口集成(与 BSD Ports 机制类似)
详情:https://www.oschina.net/p/vcpkg
命令行外壳和脚本环境 PowerShell
PowerShell 是一个跨平台的 (Windows, Linux 和 OS X) 自动化和配置工具(框架),可以和已有的工具友好集成,特别优化用于处理结构化数据 (如 JSON, CSV, XML 等), REST APIs 以及对象模型。它包含一个命令行 Shell、一个关联的脚本语言以及一个用于处理 cmdlets 的框架。
PowerShell 就相当于 Linux 下的 Bash 以及 SHELL 脚本编程语言。
PowerShell 与 Bash 的对比:
详情:https://www.oschina.net/p/powershell
C/C++ 更加安全的库 Checked C
微软开源了Checked C,旨在对C和C++增加边界检查的研究项目。
Checked C允许程序员在C/C++中编写“确保边界检查”的代码。为了实现这个功能Checked C增加了新的指针和数组类型,它们可以在编译期和运行时进行边界检查:
● ptr<T>:指向类型T且无须边界检查的指针。这种类型的指针不允许参与算数运算。当访问内存时,该类型指针不能为null。大部分指针应该用此类型。
● array_ptr<T>:指向包含类型T数组的指针。该指针可以进行算数运算。当读写内存时它不能为null。程序员需要检查这类指针的边界。
● span<T>:包含边界信息的指针。塔支持算数运算。当进行内存读写的时候不能为null。
● T array_var checked[100]:声明类型为T、大小为100的数组并且包含边界检查。当进行C语言类型转换时,包含边界检查的数组将被转换成array_ptr类型。
该规范确定了变量操作行为,包括指针类型的间接寻址、数组引用、赋值、指针加法、比较、取址(&)、含边界检查数组类型和指针类型的转换等。
现存的C程序可以继续工作,很明显C*仍然未检查,且指针的算数运算会破坏当前代码。但是编译器可以通过增加参数在指针非正常使用时发出警告或者错误。
Checked C 包含规范、一个clang的实现和一个LLVM的实现。
详情:https://www.oschina.net/p/checked-c
基于浏览器的代码编辑器 monaco-editor
Monaco Editor 是微软开源的基于 VS Code 的代码编辑器,运行在浏览器环境中。编辑器提供代码提示,智能建议等功能。供开发人员远程更方便的编写代码。描述代码编辑器功能的页面请点击:https://code.visualstudio.com/docs/editor/editingevolved
安装:
npm install monaco-editor
你将会得到
● inside dev: bundled, not minified
● inside min: bundled, and minified
● inside min-maps: source maps for min
● monaco.d.ts: this specifies the API of the editor
详情:https://www.oschina.net/p/monaco-editor
JavaScript 引擎 ChakraCore
ChakraCore 是微软开源的 Microsoft Edge 浏览器 Chakra JavaScript 引擎的核心部分,主要用于 Microsoft Edge 和 Windows 中 HTML/CSS/JavaScript 编写的应用。
ChakraCore 支持 x86/x64/ARM 架构 JavaScript 的 Just-in-time (JIT) 编译,垃圾收集和大量的最新 JavaScript 特性。ChakraCore 还支持 JavaScript Runtime (JSRT) APIs,允许用户简单嵌入 ChakraCore 到应用中。
ChakraCore 是一个功能完整的、独立的 JavaScript 虚拟机,可嵌入到衍生产品中,驱动需要脚本功能的产品如 NoSQL 数据库、生产力工具和游戏引擎。ChakraCore 现阶段只支持 Windows,但微软表示将类似 .NET 开源项目加入跨平台支持。
ChakraCore 架构:
执行管道:
JIT 编译器:
垃圾收集:
详情:https://www.oschina.net/p/chakracore