标签归档:运行时技术
关于并行貌似正确的废话–串行已经尽力了
《关于并行貌似正确的废话》系列文章: 《关于并行貌似正确的废话–串行已经尽力了》 《关于并行貌似正确的废话-程序语言发展的启示》 《关于并行貌似正确的废话-程序员是优秀的管理者》 在没有革命性的芯片制造技术之前,咱们必须得接受要想快,只能并行!即使出来了新的CPU制造技术,只要有计算,就需要时间,只要有时间需求,人就想要程序跑的越快越好。这是必须的,除了程序员,没有人会享受程序运行的过程。用计算机的人只想要结果!所以性能,将是永恒的主题。 怎么提升性能?咱们从下往上看。
前瞻-全时优化和LLVM-1
读论文<LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation> CGO 04 1,写在前面的话 全时优化(LifeLong Optimization)对于每个编译爱好者来说,太有魅力了。我在起初也是被这个题目所吸引打算一探究竟。本文是04年LLVM的最早两位开发者Chris Lattner和Vikram Adve所写,发表在04年的CGO上, 先来说说LLVM的历史。2000年LLVM开始开发,2005年Apple雇了Chris Lattner,LLVM也相当于成了Apple的官方支持的编译器。Apple已经将它用在OpenCL的流水线优化,Xcode已经能使用llvm-gcc编译代码。可以说05年之前LLVM一直都是学术界的东西,05年之后用于工业界.而这篇文章写在04年.本博最近听过一个关于LLVM的讨论会,会中有资深人士提到LLVM现在越来越像一个普通的编译器。说这番话的意思是,我们可以从这篇文章里找到LLVM的架构设计和早期的一些实现思想,但请不要迷信LLVM现在有多么神奇,每个架构都会有它的优缺点。 这篇文章,我现在已经读完了理论和介绍部分,性能评测部分还没有读。所以标题里面加了个1,因为接下来,还想作几件事,一是读完文章,二是跟踪一下Chris Lattner最近几年的文章,三是尝试将Open64和LLVM做个对比,最后看看代码。所以敬请期待之后的系列文章。
WebKit和Firefox的JavaScript性能对比
严格的说WebKit仅仅是个浏览器核心,采用该核心的浏览器很多,如国内的搜狗浏览器,遨游浏览器。其他的如google的chrome(Windows平台,linux平台下为chromium),epiphany(linux平台下,gnome2.28版本之后),苹果的Safari 都采用了webkit的内核。Firefox则是采用Gecko的内核,这是NetScape公司开发的内核,后来开源,mozilla继续开发。另外,现在还有另外两种常见的浏览器内核,Trident主要用在IE系列上,Presto主要用在Opera上。 这篇文章仅仅针对浏览器处理JavaScript的性能作比较,主要在X86平台和龙芯平台。先来解释一下JavaScript,JavaScript是互联网内较为常用的脚本语言,面向对象,主要在浏览器内解释执行,用于生成动态网页,因为很多语言特性受Java影响,所以叫JavaScript。通过JavaScript,浏览器可以运行服务器想要在访问者终端上运行的一些计算程序,以达到更好的浏览体验。
Adobe AIR是什么?
Adobe AIR(Adobe Integrated Runtime)是跨平台的运行时系统,是在Apollo的基础上更名的系统。
开发人员可… 继续阅读
Gcc和Open64中的-fPIC选项
选项 -fPIC PIC是Position-Independent Code的缩写。在计算机系统中,PIC和PIE(Position-Independent Executable)是可以在主存中不同位置执行的目标代码。PIC经常被用在共享库中,这样就能将相同的库代码为每个程序映射到一个位置,不用担心覆盖掉其他程序或共享库。 要想实现位置无关,代码必须通过特定的方式编写、编译才行。比如对于固定地址的绝对跳转指令,就需要使用相对应的相对跳转指令代替,相对位置的计算通过对指令计数器的计算得到。在某些特定的体系结构上(如AMD64),共享库就必须支持PIC。
