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

怎样黑进别人的网站地方网站运营方案

怎样黑进别人的网站,地方网站运营方案,做品牌形象网站,用wordpress设计html5PgSQL即时编译JIT | 第1期 | JIT初识 JIT是Just-In-Time的缩写#xff0c;也就是说程序在执行的时候生成可以执行的代码#xff0c;然后执行它。在介绍JIT之前#xff0c;需要说下两种执行方式#xff1a;解释执行和编译执行。其中解释执行是通过解释器#xff0c;将代码逐… PgSQL即时编译JIT | 第1期 | JIT初识 JIT是Just-In-Time的缩写也就是说程序在执行的时候生成可以执行的代码然后执行它。在介绍JIT之前需要说下两种执行方式解释执行和编译执行。其中解释执行是通过解释器将代码逐条翻译成机器码而编译执行是提前翻译成机器码。编译执行又分为动态编译和静态编译其中动态编译指在运行时进行编译与之相对的就是静态编译。JIT编译就是动态编译的一种技术。优点编译代码的速度快了运行时根据运行态编译代码少很多条件判断和无关代码效率会很高缺点运行时需要进行编译产生机器码带来额外开销。因此需要针对不同情况进行测试和分析评估带来的收益是否大于带来的开销。 1、LLVM PgSQL通过LLVMLow Level Virtual Machine底层虚拟机进行代码生成。LLVM是一款开源编译器框架我们主要关注LLVM IR的格式以及生成LLVM IR的API。IR全称是Intermediate Representation即“中间表示”。Clang将PgSQL代码编译成中间表示.bc文件然后通过LLVM根据运行时状态将.bc动态编译生成最终执行的代码。 2、PgSQL编译与LLVM PgSQL的执行器基于火山模型执行计划树的每个节点定义为Plan执行时遍历从树根开始执行计划树从而驱动执行器的执行。问题计算过程中无法明确操作的类型需要频繁对类型进行识别导致计算过程中产生了大量的动态类型识别需求并且处理逻辑笨重递归、封装、类型判断等这样的代码实现方式带来频繁的函数调用以及缓存使用率低、对指令集不敏感等。PgSQL仅对表达式计算进行了JIT加速。首先从thinlto说起。 lto就是链接时优化在编译阶段Clang将PgSQL的.c文件编译成中间表示.bc文件执行时通过LLVM将.bc文件进行链接优化和内联优化最终根据执行状态生成执行需要的机器码。 传统的LLVM LTO也就是通过clang -cc1 -flto生成原生字节码.o文件。在frontend层并行生成LLVM字节码文件这个过程中有一些初始优化linker层通过LLVM作为一个linker查进将所有字节码文件链接生成一个module的.bc文件进行代码生成时将.bc文件加载内存后通过优化和内联进行代码生成。Single-threaded very boring usual optimizations Potentially threaded CodeGen。在实践中LTO通常需要大量内存一次性保存所有IR并且非常慢。若通过-g启用了调试信息IR的大小和需要的内存还会显著增加。当任何输入源发生变化时从LTO步骤开始的所有内容都必须重新执行使得增量构建变得不太有效。 ThinLTO第一阶段frontend全并行处理初始优化生成.bc字节码文件同时会为每个函数可生成summary信息。第二阶段不需要解析IR中间表示代码只需要将summary信息链接thin-link。基于summary信息完全并行跨模块进行函数导入导入的函数在内联后会被删除。第三阶段进行优化后生成机器码Fully-parallel (very boring) usual optimizations and CodeGen。它的串行步骤非常轻量且快速不需要加载字节码合并单个庞大模块来执行这些分析而是在串行链接步骤中利用每个模块的摘要进行全局分析。ThinLTO全局分析所启用的关键转换是函数导入只有可能进行内联的函数才被导入到每个模块中。最大程度减少了每个ThinLTO后端的内存开销同时最大化了最有影响力的跨模块优化机会。 总之ThinLTO的核心是将程序分为多个模块每个模块可以独立进行编译和优化。然后通过使用一个索引文件summary也就是.bc的索引文件来跟踪每个模块的信息以便在链接阶段进行全局优化。这种方式可以减少编译时间和内存消耗同时仍能够实现类似于WPO例如GCC的-fwhole-program开关的优化效果。 PgSQL中configure时指定--with-llvm然后生成的Makefile.global.in会带有对JIT的相关设置使用thinlto技术生成带有模块摘要的IR install_llvm_module通过llvm-lto -thinlto -thinlto-actionthinlink对每个代码目录的文件夹生成摘要文件比如生成字节码后在lib/postgres/bitcode目录下postgres对应postgres.index.bc。 Index.bc是bc文件的索引bc文件的生成是通过clang编译C文件得到bc文件级别编译时还会有个优化也就是编译过程中-O0、-O1、-O2的优化。在configure中指定 使用不同的编译参数会得到差异很大的bc文件-O0时所有函数的noInline属性都是1O2时才会有nonInline0的函数也就是代码生成时才能进行inline优化。 参考 https://llvm.org/devmtg/2016-11/Slides/Amini-Johnson-ThinLTO.pdf
http://www.hkea.cn/news/14536671/

相关文章:

  • 潍坊外贸网站优化seo是做什么的
  • 网站建设中最重要的是什么彩票网站是静态动态
  • 备案需要网站建设方案书wordpress 国产主题
  • 国内网站做国外服务器网站导航
  • seo网站推广价格广州微信开发
  • 杭州网站建站公司做推广哪家网站好
  • 宁德营销型网站建设网站关键字没有排名
  • 如何查询网站的备案信息查询去马来西亚做网站网站
  • 外贸网站推广多少费用做那个的网页
  • 江门手机网站建设连云港吧
  • thinkphp5 做网站google地图嵌入网站
  • 简单的网站建设企业网站备案跟做哪个推广有关系吗
  • HTML5怎么做自适应网站建设银行官网网站首页
  • 在欣欣网上做网站效果如何互联网优化营销
  • 广州市恒嘉建设有限公司网站天猫入驻网站建设
  • 网站开发fsdpjq个人名下公司查询网
  • 北川建设局网站免备案的网站首页
  • 简洁 手机 导航网站模板下载安装江西省赣州市地图
  • 网络营销八大工具湖南seo优化按天付费
  • 网站赚钱今天的新闻内容50字
  • 网站建设开发pptwordpress接入小程序
  • 泉州市培训建设系统中心网站教师进修学校网站建设方案
  • 怎样在外管局网站做延期付款化工厂建设网站
  • 惠州网站建设兼职知识付费问答系统网站开发
  • 网站风格配置怎么做汇算清缴在哪个网站上做
  • 相城建设监理有限公司网站网站外部链接如何建设
  • 服装网站建设规划书wordpress cdn图片加速
  • 自己做网站如何挣钱wordpress 性能分析
  • 做网站分辨率一般多少网站建设投标方案
  • iis如何发布php网站网站如何加入广告联盟