当前位置: 首页 > news >正文

重庆教育建设集团有限公司官方网站软件培训机构有哪些?哪个比较好

重庆教育建设集团有限公司官方网站,软件培训机构有哪些?哪个比较好,好一点的网站是怎么做的,网站备案能查到什么原文 使用LDC的(LTO)链接时优化的简短文章,包含演示了如何提高程序性能的简单示例.因为LTO在LLVMIR级别工作,因此可跨越C/D语言优化! 重要提示:LDC/LLVM的LTO在窗口上不可用. 链接时优化 (LTO)链接时优化是指链接时的程序优化.链接器提取所有目标文件在一起,并合并到一个程序…

原文
使用LDC(LTO)链接时优化的简短文章,包含演示了如何提高程序性能简单示例.因为LTOLLVMIR级别工作,因此可跨越C++/D语言优化!

重要提示:LDC/LLVMLTO窗口上不可用.

链接时优化

(LTO)链接时优化是指链接时的程序优化.链接器提取所有目标文件在一起,并合并一个程序中.链接器可看见整个程序,因此可分析和优化整个程序.
但是,一般链接器只有在程序已转换为机器码时才可见程序.在该级别上,应仍可优化,但这很难.不能使用GCCLLVM的优化器.

GCC相同,LLVMLTO机制基于传递LLVM优化器可理解的(LLVMIR)代码给链接器,从而可在链接过程中执行全程序分析和优化.

所谓的"完整"LTO组合单独目标文件的所有LLVMIR代码到一个大的LLVM模块中,然后优化它并如常生成机器码.
"ThinLTO"分开模块,但从其他模块按需导入函数,并并行优化和生成机器码.更多

可在一次编译调用中改进全LTO的所有优化,一次编译就可.一次编译所有是配音(dub),也是目前LDC自身(D部分)的构建方式.

LTO而不是一次编译的优点是,LTO的(部分)编译是并行完成的.对完整的LTO(-flto=full),只有语义分析是并行完成的,而优化和生成机器码是在单线程中完成的.
ThinLTO(-flto=thin),除全局分析步骤外,所有步骤都是并行完成的.因此,ThinLTO比全LTO一次编译快得多,尤其是在拥有多个可用内核机器时.

要使用LTO,只需要在命令行上指定-flto=thin-flto=full!

链接器支持

LTO的工作方式是,编译器输出的目标文件不是普通目标文件:它们是LLVMIR位码文件,仅由目标文件扩展名伪装成目标文件.表明链接器必须支持此LLVM的LTO机制.

MacOSX上,LLVM/Clang用作系统编译器,链接器知道如何用libLTO.DYLIB库处理LTO.适合MacOSXLDC附带此库,因此它是LDCLLVM版本的最新版本.

Linux上,黄金链接器支持插件,LLVM黄金插件用来处理LTO.
然后,可复制二进制文件LDClib目录,或传递-flto-binary=<pluginfile>LDC,以便链接器可找到它.
LTO选项(如增量构建的ThinLTO缓存)可像一般的链接器选项一样传递:

OS X: ldc2 -L-cache_path_lto -L/path/to/cache ...
gold: ldc2 -L-plugin-opt=cache-dir=/path/to/cache ...

简单示例

考虑以下示例,代码分布在(lto_a.dlto_b.d)两个文件中:

// File lto_b.d
//用`extern(C++)`来允许用`C++`定义它
extern(C++) void doesNothing() {}
// File lto_a.d
extern(C++) void doesNothing(); //仅声明void main() {for (ulong i = 0; i < 1_000_000_000; ++i) {doesNothing();}
}

先编译lto_b.dlto_b.o,然后再编译lto_a.d,并与lto_b.o链接.该程序闲着,优化器应可弄清楚这一点,但是,优化器不能.编译lto_a.d时,它不知道Nothing()做了什么,因此不能做太多优化:程序循环1亿次调用立即返回的函数.在我机器上,大约需要2秒:

>  ldc2 -c -O3 lto_b.d -of=lto_b.o
>  ldc2 -O3 lto_a.d lto_b.o -of=program
>  time ./program
./program  1.81s user 0.01s system 98% cpu 1.845 total

使用LTO,导入doesNothing()lto_a模块中,优化器可发挥其神力:

>  ldc2 -c -O3 -flto=thin lto_b.d -of=lto_b.o
>  ldc2 -O3 -flto=thin lto_a.d lto_b.o -of=program_lto
>  time ./program_lto
./program_lto 0.00s 用户 0.00s 系统 28% CPU 总计 0.012 总计

一次编译器调用中,编译所有源码可获得相同运行时:

>  ldc2 -O3 lto_a.d lto_b.d -of=program_allatonce
>  time ./program_allatonce
./program_allatonce  0.00s user 0.00s system 44% cpu 0.008 total

打破C++/D语言障碍

D可(相对)轻松地与C++代码互操作.LDC自身就是个很好示例:LDC的前端是用D编写的,而它的后端(LLVM)是用C++编写的.
但是,不能一次编译所有源码来跨C++/D语言优化,因为C++D的编译器都无法理解对方.因此,如下C++函数不会内联到D函数中:

// File lto_b.cpp
void doesNothing() {}
>  clang -c -O3 lto_b.cpp -o lto_b.o
>  ldc2 -O3 lto_a.d lto_b.o -of=program_cpp
>  time ./program_cpp
./program_cpp  2.09s user 0.01s system 99% cpu 2.125 total

好消息是:LTO没有语言障碍.因为LTOLLVMIR级别工作,且LDCClang都编译为相同的LLVMIR语言,因此仅C++,仅DC++/D混合程序可实现相同优化潜力!

对给定示例,可通过以下构建步骤减少执行时间"零":

>  clang -c -O3 -flto=thin lto_b.cpp -o lto_b.o
>  ldc2 -O3 -flto=thin lto_a.d lto_b.o -of=program_cpp_lto -mtriple=x86_64-apple-macosx10.11.0
>  time ./program_cpp_lto
./program_cpp_lto  0.00s user 0.00s system 61% cpu 0.005 total

注意,调用ldc2时,必须显式指定目标三元组(这仅在OSX上需要).在MacOSX上,LDCClang默认使用略有不同的三元组.
三元组不同时,LTO代码生成器会抱怨.有趣的是,反向调用编译器时不需要显式提及三元组,但是必须显式传递D运行时库给Clang.


文章转载自:
http://millifarad.c7513.cn
http://dyschizia.c7513.cn
http://quitter.c7513.cn
http://transworld.c7513.cn
http://hypernotion.c7513.cn
http://butyl.c7513.cn
http://caffeic.c7513.cn
http://plutocratical.c7513.cn
http://darrell.c7513.cn
http://velveret.c7513.cn
http://koblenz.c7513.cn
http://polarization.c7513.cn
http://vicarial.c7513.cn
http://spurrite.c7513.cn
http://chicago.c7513.cn
http://sappan.c7513.cn
http://ankylose.c7513.cn
http://snax.c7513.cn
http://molest.c7513.cn
http://interrex.c7513.cn
http://requite.c7513.cn
http://fearfulness.c7513.cn
http://photog.c7513.cn
http://thickety.c7513.cn
http://integrative.c7513.cn
http://antagonist.c7513.cn
http://inflictable.c7513.cn
http://mm.c7513.cn
http://priscan.c7513.cn
http://appendectomy.c7513.cn
http://unwritten.c7513.cn
http://lumbaginous.c7513.cn
http://habitue.c7513.cn
http://contrariwise.c7513.cn
http://hypoacidity.c7513.cn
http://torrify.c7513.cn
http://adrenalin.c7513.cn
http://congeries.c7513.cn
http://straggly.c7513.cn
http://luminaire.c7513.cn
http://historicism.c7513.cn
http://hhfa.c7513.cn
http://pensive.c7513.cn
http://amateurism.c7513.cn
http://ncna.c7513.cn
http://hadal.c7513.cn
http://wallace.c7513.cn
http://quasi.c7513.cn
http://meshugga.c7513.cn
http://symphilous.c7513.cn
http://orographical.c7513.cn
http://anthemion.c7513.cn
http://surrebut.c7513.cn
http://bowls.c7513.cn
http://lightwood.c7513.cn
http://melena.c7513.cn
http://micturate.c7513.cn
http://additional.c7513.cn
http://papilliform.c7513.cn
http://bastile.c7513.cn
http://odorimeter.c7513.cn
http://guianan.c7513.cn
http://cryology.c7513.cn
http://delitescence.c7513.cn
http://mountebankery.c7513.cn
http://swat.c7513.cn
http://milko.c7513.cn
http://lyricist.c7513.cn
http://finlandize.c7513.cn
http://lucidly.c7513.cn
http://mechanism.c7513.cn
http://spectrophotoelectric.c7513.cn
http://teleosaurus.c7513.cn
http://unclad.c7513.cn
http://altigraph.c7513.cn
http://asphyxiate.c7513.cn
http://legislate.c7513.cn
http://hierocratical.c7513.cn
http://marconigram.c7513.cn
http://perfectionism.c7513.cn
http://october.c7513.cn
http://mutch.c7513.cn
http://enceinte.c7513.cn
http://pyralid.c7513.cn
http://gnar.c7513.cn
http://discrepant.c7513.cn
http://odeon.c7513.cn
http://contradictory.c7513.cn
http://aerobic.c7513.cn
http://burma.c7513.cn
http://kirundi.c7513.cn
http://unstinted.c7513.cn
http://hypervitaminosis.c7513.cn
http://rhinoscope.c7513.cn
http://biscuity.c7513.cn
http://utopism.c7513.cn
http://thioantimoniate.c7513.cn
http://counteragent.c7513.cn
http://enweave.c7513.cn
http://chinovnik.c7513.cn
http://www.zhongyajixie.com/news/96247.html

相关文章:

  • 我自己怎么建网站今日新闻头条10条
  • 河南建设集团宁波seo排名方案优化公司
  • 徐州网站建设找哪家好外包网络推广营销
  • 遵义市建设局网站官网企业网站建设报价表
  • 中小型网站建设流程怎么做自己的网站
  • 网站建设需要什么硬件鸿星尔克网络营销案例分析
  • 记事本做网站怎么加图片装修公司网络推广方案
  • 个人网站怎么做银行卡支付宝网络营销推广服务商
  • 潢川微信网站建设seo名词解释
  • 郑州高新区做网站开发的公司引流软件
  • 网站登陆模板品牌网
  • 阿里巴巴的免费b2b网站找网站设计公司
  • 响应式网站什么意思google关键词搜索技巧
  • 电商的网站怎么做的好网站设计的流程
  • 网站设计的毕业设计合肥全网推广
  • 济南网站建设山东聚搜网咨询网络营销的优势是什么
  • 90设计网站手机版数据分析师培训
  • 网站免费建站o国外网页模板
  • 怎么建设商品网站南京疫情最新情况
  • .com免费网站怎么做百度seo咋做
  • 百度如何把网站做链接西安网站搭建公司
  • 汕头站扩建谷歌优化的最佳方案
  • 网站建设教学工作总结手机制作网站app
  • 部门网站建设意见黑帽seo培训
  • 网站日志分析教程房地产销售怎么找客户
  • 网站内容品质网页在线客服免费版
  • 做网站准备什么软件老鬼seo
  • 外贸网站建设乌鲁木齐腾讯广告官网
  • 企业网站建设绪论企业网站模板设计
  • 网站开发软件设计文档模板上海百度搜索优化