文章提交注意事项:
请在发布文章时用HTML代码加上至少一条新闻来源的链接;原创性消息,可加入相关信息(如涉及公司的网址)的链接。有任何问题,邮件至:he.fang#zhiding.cn
ken:feigaobox@gmail.com
注意:收到邮件乱码的用户请修改客户端的默认字体编码,从"简体中文(GB2312)"修改为"Unicode(UTF-8)"。

Solidot 公告
投 票
热门评论
- 中国什么时候要求外国推行防火墙了?华尔街这明显是假新闻! (1 points, 一般) by jerry 在 2019年02月15日21时14分 星期五 评论到 分裂的互联网正变成一个战场
- 《纽约时报》不干了,是因为印度民意不好操控了? (1 points, 一般) by jerry 在 2019年02月15日19时45分 星期五 评论到 印度政府提议采用中国风格的互联网审查
- 上梁不正下梁歪 (1 points, 一般) by solidot1550043294 在 2019年02月15日18时30分 星期五 评论到 华南理工学院领导纂改研究生考生成绩
- yeah (1 points, 一般) by cnw 在 2019年02月15日18时15分 星期五 评论到 在播客中欣赏 Solidot
- 这是你的想像 (1 points, 一般) by jerry 在 2019年02月15日16时47分 星期五 评论到 学习强国是中国最受欢迎的教育应用
- 毛泽东语录-21世纪版 (1 points, 一般) by solidot1550043294 在 2019年02月15日16时45分 星期五 评论到 学习强国是中国最受欢迎的教育应用
- 鄙视两面人 (1 points, 一般) by jerry 在 2019年02月15日16时43分 星期五 评论到 华南理工学院领导纂改研究生考生成绩
- IGNORANCE IS STRENGTH (1 points, 一般) by lot 在 2019年02月15日16时10分 星期五 评论到 在播客中欣赏 Solidot
- Re: Solid = 固定 (1 points, 一般) by cutpigsrollaroundint 在 2019年02月15日15时34分 星期五 评论到 在播客中欣赏 Solidot
- 密码泄漏了换密码 (1 points, 一般) by cutpigsrollaroundint 在 2019年02月15日13时52分 星期五 评论到 中国公司的人脸识别数据库外泄
快速链接
致长期以来一直关注solidot的海内外朋友,请点击这里查看。
Adobe 正式宣布到 2020 年结束 Flash 的生命。官方博客解释说,过去几年,开放标准如 HTML5、WebGL 和 WebAssembly 已经逐渐成熟,提供了原来由插件率先实现的能力和功能。鉴于这一进步,Adobe 与技术合作伙伴 Apple、Facebook、Google、Microsoft 和 Mozilla 一起制定了结束 Flash 生命的计划,到 2020 年底 Adobe 将停止更新和分发 Flash Player,它鼓励内容创作者将现有的 Flash 内容迁移到新的开放标准。微软已经发表声明,宣布它的浏览器 Edge 将逐渐移除 Flash 支持,到 2020 年底 Windows 将停止支持 Flash。
微软支持网站列出了将在 Windows 10 Fall Creators Update 中移除或废弃的功能,
其中遭到废弃的一项功能是 Windows 著名的画图应用 Microsoft Paint。废弃并不意味着画图应用将会从用户的系统中移除,Win32 API 已经废弃了20 年但仍然没有移除,它只是表示微软不再更新和维护该功能,但该功能仍然有可能会在未来的版本中移除。Microsoft Paint 有着 32 年的历史,它的功能简单,但足以完成一些简单的任务。即便移除了,Windows 用户有很多优秀的免费替代如 paint.net 可供选择 。
在今天举行的 Microsoft Build 2017 大会上,软件巨人发布了 Visual Studio for Mac,将它的著名编译器 Visual Studio 正式带到苹果的平台。Visual Studio for Mac是基于开源的 MonoDevelop IDE,其主要特性包括:在任意提供商(GitHub 和 Visual Studio Team Services)托管的 Git 库中管理代码,跨 Windows 和 Mac 项目开发无缝共享;方便为 iOS、Android 和 Mac 多个平台构建应用;支持直接从 IDE 发布到云端;支持组合利用 Unity 引擎开发跨平台游戏。
尽管印度培养了大量 IT 工程师,但真正能胜任工作的并不多。根据就业能力评估公司 Aspiring Minds 的一项研究,只有 4.77% 的候选人能写出一个程序的正确逻辑——这是任何编程类工作的最低要求。超过 3.6 万名 IT 学生参加了 Automata 的评估,三分之二以上的人甚至不能写出能编译的代码。Automata 是一种基于机器学习的软件开发技能评估工具。研究发现,只有 1.4% 的候选人能写出功能正确且有效的代码。印度顶尖大学候选人的总体表现要好于其他学校的学生。
Google 官方博客宣布弃用判断 JavaScript 性能的基准测试工具 Octane。Octane 最初是为 Chrome JS 引擎 V8 开发的,设计解决苹果 Safari 团队开发的 SunSpider 基准测试早期版本的问题。SunSpider 的测试都是微基准,不能代表真实世界。浏览器开发者被发现专门针对 SunSpider 进行优化以提高得分。但今天的 Octane 就像当年的 SunSpider,浏览器开发商也加入了提高 Octane 得分的优化,优化得分甚于开发更好的 JS 引擎,因此 Google 决定淘汰 Octane。
2015年,沙特朝圣活动期间发生践踏事故导致量千多人死亡。2013年,两名恐怖分子在波士顿马拉松比赛中放置背包炸弹导致三名观众死亡。如果技术能实时跟踪和分析人群中的个人活动,我们将能更好的预测积累的危险或发现可疑行为,挽救生命。现在,两位研究人员在《IEEE Transactions on Pattern Analysis and Machine Intelligence》上发表研究报告,他们开发出软件能同时跟踪人群中的数百人。新的软件提高了跟踪的效率和准确性,其诀窍是预测一个人接下来会去哪里,研究人员开发了一个算法来解决这个问题。
现在是成为软件工程师的美好时代。根据招聘网站 Indeed.com 公布的 2017 年最佳工作名单,软件工程和开发的工作统治了 Top 25。最热门的工作是全栈工程师,平均基薪 $110,770,其次是数据科学家;但薪水最高的工作是机器学习工程师,平均基薪 $134,306,其次是数据科学家的 $129,938,计算机视觉工程师的 $127,849。Top 25 中的非软件工程工作主要是管理方面的工作。
Robert J. Sawyer、Roger MacBride Allen、Gerald Brandt、Jeffrey A. Carver、Arthur C.
Clarke、David Gerrold、Terence M. Green、James Gunn、Matthew Hughes、Donald Kingsbury、Eric Kotani、Paul Levinson、George R. R. Martin、Vonda
McIntyre、Kit Reed、Jennifer Roberson 和 Edo van Belkom 等等,所有这些作家,除了已经去世的外,至今仍然在使用一款 DOS 时代的写作软件 WordStar 。WordStar 在 1979 年发布了第一个版本,当时计算机键盘布局还没有标准化,很多键盘缺乏移动光标的方向键和发出命令的功能键,有的甚至还缺乏 Tab、Insert、Delete、Backspace 和 Enter 键。雨果奖和星云奖得主 Robert J. Sawyer 写了一篇文章介绍为什么 WordStar 的界面设计让他至今都爱不释手,为什么在创作上 WordStar 强于其它字处理软件如 WordPerfect 和 Word。他给出的一个理由与乔治. 马丁类似,WordStar 让他而不是程序能控制创作。
AOL 突然宣布将切断第三方应用访问 AIM。AOL 的 AIM 曾经是用户基数最大的聊天工具,如今当然已经风光不再,AOL 事实上已经停止开发 AIM。目前,除了现有的官方客户端,第三方聊天工具如 Adium、Trillian 或 Pidgin 可使用 AOL 的 OSCAR 协议处理 AIM 消息。但 Adium 客户端用户已经收到通知将在 3 月 28 日切断对 AIM 网络的访问。前 AOL 开发者猜测是 AOL 想要停止维护 OSCAR 协议,可能是因为维护成本太高了。

微软正在测试一项新功能,模仿苹果等的做法,限制安装非官方应用商店的应用。启用该功能后,Windows 10 用户安装 Windows 平台传统的 Win32 应用时,会看到警告对话框,称该应用不是来自官方应用商店,为了电脑的安全和可靠,建议不要安装之类。该功能默认禁用,但按照微软过去几年的做法,默认启用可能只是时间问题,事实上它正在这么做。
华为要清理(也就是裁掉)34 岁以上的 “高龄” 员工的消息引发了广泛的争议,争议声中有一部分人支持华为的做法,认为 35 岁或 45 岁还写什么程序,认为程序员就是吃青春饭的。然而并不是所有地方都像中国或中国华为,年长的人继续写代码并不罕见,甚至很多人就是从 35 岁或 40 岁或 50 岁开始当程序员的:Google 的网站可靠性工程师 Aimee Morgan 是在35岁开始自学 Python 语言的;房地产社交网络 Bigger Pockets 的资深开发者 Clayton Boyle 在 36 岁开始学编程;Ruby on Rails 开发者 Bill Barnett 是在40岁开始学习计算机科学;iOS 开发者 Derek Langton 是在 42 岁时开始学编程; Full Stack Ruby on Rails 开发者 Laurie Alaoui 在 50 岁开始当程序员...
在人们的心目中,程序员的形象类似 Mark Zuckerberg这样的超级明星,一位大学辍学者,能在72小时的编程马拉松中间构建出一个应用——目标是变得极其富有和所谓的“改变世界”。这种刻板的印象并不适用于所有程序员,绝大多数程序员都是默默无闻的,不会暴富,但工作稳定收入也不错,工作中间也不乏智力上的挑战。他们是新一代蓝领工人,而编程正变成一个稳固的中产阶级工作。美国IT行业的平均薪水是81,000美元,是全国平均薪水的2倍以上。IT领域从2014-2024年预计将会扩大14%,快于绝大部分职业。
美国环保署宣布菲亚特的柴油汽车被发现使用未披露的软件修改汽车的排放控制系统。涉嫌排放作弊的车型包括2014、2015年和2016年款的柴油大切诺基吉普车、采用3.0升柴油引擎的道奇公羊1500卡车,受影响的车辆共10.4万辆。美国环保署表示它正与菲亚特协商,尚未要求该公司停止销售汽车,也没有将软件称为是作弊装置。环保署官员称,他们是在大众尾气排放丑闻曝光之后对汽车增加额外测试后在菲亚特的相关车型上发现未披露的软件。菲亚特的软件工作方式与大众的软件相似,设计在排放测试中满足排放标准,而在高速或长时间驾驶时软件将会降低排放控制的效果。
移动消息应用Telegram发布了其桌面版本的1.0正式版,允许用户在移动端和桌面版本之间自动切换。Telegram支持Windows、Mac和 Linux,支持定制主题,使用加密云自动同步移动端的消息、文档、照片和视频。其中一项值得一提的功能是云草稿,也就是在移动端写的草稿可以在桌面上继续撰写,设备之间的切换是无缝的。
Adobe 刚刚释出了Acrobat Reader DC 15.023.20053,修复了29个安全bug,这个更新顺便还给Chrome浏览器悄悄安装了一个扩展。这个秘密安装的扩展没有启用,Chrome用户在重新打开浏览器后会看到提示,用户可选择启用扩展或卸载。扩展的名字就叫Adobe Acrobat,其功能是将当前网页转换为 Adobe PDF 文件保存在用户设备上,它只支持Windows,Mac和Linux用户不会收到这个扩展。
去年9月,GNU Libreboot 项目的维护者 Leah Rowe 在 GNU 邮件列表上发表声明,单方面宣布脱离 GNU 项目和自由软件基金会(FSF),声称自由软件基金会搞性别歧视,解雇了一位跨性别雇员,她作为一位跨性别者对此无法接受。当时 FSF 主席 Richard Stallman(RMS) 和 FSF 分别发表声明,否认是因为性别的原因终止与这位雇员的雇佣关系。在时隔3个月后,RMS 正式宣布Libreboot不再是GNU软件包的一部分。RMS称,当软件包维护者辞职,这一行动本身并不会破坏GNU和该软件包之间的关系,如果该项目在维护者离开之后仍然可用,那么他们将会寻找新的维护者。但现在他们只能切断GNU与该项目之间的关系,因为1)它成为GNU软件包的时间并不长,2)Leah Rowe是让Libreboot成为GNU软件包的主要开发者,3)没有主要开发者愿意在GNU保护伞下继续开发Libreboot。

许多应用性能管理(APM)厂商在对 JVM运行时性能进行深入分析时,一般使用JVM运行时的接口,而JVM运行时提供两种接口:JVMPT和JVMTI。JVMPI 接口从 Java 5后逐渐被 JVMTI 所取代,且JVMTI接口都允许APM厂商将本地库(通常称作Native Agent)加载到与 JVM 同一个进程中,使得该本地库可以通过本地的 API (C/C++代码)访问 JVM 运行时的状态和应用程序的性能数据。另外,由于该库并不作为 JVM 运行时的一部分,它不会受到 JVM 停止的影响(例如:较长的垃圾收集挂起、运行时错误等),因此能够一直向外部工具传输数据。
Java 5 还引入了一种纯 Java 接口方案(通常称作Java Agent),作为这种本地接口的替代方案。这种方案允许将Java Agent加载到 JVM 之中,并作为 JVM 的一部分运行。其“不利”的一面是,Jva Agent是在 JVM 启动后期才被加载,该Agent是运行在JVM运行时的容器里,它会受到 JVM 挂起或 Java 运行时问题的影响,并且不能报告某些类型的错误信息。
在本博客中我们将主要阐述,为何Dynatrace的工程团队决定采用Native Agent方式结合字节码插码技术(bytecode instrumentation,BCI)的方式,而不是采用基于 Java Agent的方式,来监控应用程序的性能。
对所有的类进行全面、深入的分析
Native Agent能够在任何类加载之前加载。这使Native Agent能够从一开始就采集数据,并可使其不会受到任何约束的,对所有的 Java 代码进行数据采集和控制执行。为能捕获方法级的信息,可利用字节码插码技术(BCI)实现优势互补,而不是依赖于Native接口的回调。这样不仅能对任何类执行字节码插码,还能对核心系统类进行深入分析(java.lang.Object、java.lang.Thread等)。
获得更为详尽的信息
通过JVM native接口,我们可以获得更为详尽的性能信息,例如操作系统的高精度时钟、详细的垃圾收集数据等。由于采用了Native Agent方式,因此不必另外安装用于采集系统信息的程序。而Java Agent很可能无法访问上述数据,因为它运行于 JVM 内的特殊的安全背景环境之中。
在Native Agent内部,我们可以采集到与 JVM 有关的大量信息,例如内存、线程、JVM 崩溃等。尤其对于线程和内存分析,访问 JVM 线程和内存使用情况以及本地线程和内存使用情况有助于性能监测。一旦出现内存不足错误导致崩溃,因为本地进程仍在运行,所以Native Agent仍能采集堆栈中的数据和内存信息。
【线程死锁分析】
对 JVM 的影响轻微
通过本地代码调用JVMTI接口,可以更加有效的获取性能分析的数据,例如,通过线程(Thread)快照的方式获取线程栈信息,而从 JVM 内部的 Java Agent调用JVMTI接口获取此类信息所需的代价要高很多,然而,对线程栈做快照恰恰是定位Java方法执行缓慢的最佳途径,由于对JVM的负载太高,以至于部分Java Agent的APM厂商不得不放弃功能来达到用户对性能开销的要求。
未挂靠 JVM
由于Native Agent没有挂靠(attach)在 JVM 上,因此不会受到 JVM 挂起(特别是与垃圾收集)的影响,可以在 JVM 停止(让进程仍然运行)期间仍采集数据,这样可以帮助我们采集有关垃圾回收所导致的JVM挂起对当前正在执行应用线程的实际影响的信息,而 Java Agent则无法获得这样的信息,因为它受到 JVM挂起的影响,而不能执行自身的代码来收集数据。
总结
Native Agent因为工作原因的不同,导致其与Java Agent相比,拥有明显的优势,具体总结如下:
1. 获取JVM运行时的性能参数。
2. 获取JVM线程栈信息
3. 不受JVM的运行状态影响。
4. 开销更少
本文翻译自:http://apmblog.dynatrace.com/2014/01/15/pros-and-cons-of-using-java-vs-native-agent-for-application-performance-management/
中文内容作者Dynatrace技术专家丁威