代码优化

未经处理的异常: 0xC0000005: Access violation

我的未来我决定 提交于 2019-12-03 19:07:51
vs2010代码编译正常,运行时提示 XXX.exe中的 0x00905a4d 处有未经处理的异常: 0xC0000005: Access violation, 查看代码一切正常,大部分是调用别的库,没法具体跟踪错误位置。 而后用vs2013编译调试了下,错误提示为: XXX已经被优化掉 不可用。 查看了项目属性问题解决。 解决办法: 项目属性 - > 链接器 -> 优化 , 里面的 引用行选择否 (否 (/OPT:NOREF)) 来源: oschina 链接: https://my.oschina.net/u/727148/blog/752284

apache calcite 优化器(二)

早过忘川 提交于 2019-12-03 12:19:28
紧接上篇文章 Apache Calcite 处理流程详解(一) ,这里是 Calcite 系列文章的第二篇,后面还会有文章讲述 Calcite 的实践(包括:如何开发用于 SQL 优化的 Rule)。本篇文章主要介绍 Apache Calcite 优化器部分的内容,会先简单介绍一下 RBO 和 CBO 模型,之后详细讲述 Calcite 关于这两个优化器的实现 —— HepPlanner 和 VolcanoPlanner,文章内容都是个人的一些理解,由于也是刚接触这块,理解有偏差的地方,欢迎指正。 什么是查询优化器 查询优化器是传统数据库的核心模块,也是大数据计算引擎的核心模块,开源大数据引擎如 Impala、Presto、Drill、HAWQ、 Spark、Hive 等都有自己的查询优化器。Calcite 就是从 Hive 的优化器演化而来的。 优化器的作用:将解析器生成的关系代数表达式转换成执行计划,供执行引擎执行,在这个过程中,会应用一些规则优化,以帮助生成更高效的执行计划。 关于 Volcano 模型和 Cascades 模型的内容,建议看下相关的论文,这个是 Calcite 优化器的理论基础,代码只是把这个模型落地实现而已。 基于规则优化(RBO) 基于规则的优化器(Rule-Based Optimizer,RBO):根据优化规则对关系表达式进行转换

webpack 性能够优化

白昼怎懂夜的黑 提交于 2019-12-03 11:52:52
Webpack 性能优化 16 Webpack 性能优化 在这一的章节中,我不会浪费篇幅给大家讲如何写配置文件。如果你想学习这方面的内容,那么完全可以去官网学习。在这部分的内容中,我们会聚焦于以下两个知识点,并且每一个知识点都属于高频考点: 有哪些方式可以减少 Webpack 的打包时间 有哪些方式可以让 Webpack 打出来的包更小 减少 Webpack 打包时间 优化 Loader 对于 Loader 来说,影响打包效率首当其冲必属 Babel 了。因为 Babel 会将代码转为字符串生成 AST,然后对 AST 继续进行转变最后再生成新的代码,项目越大,转换代码越多,效率就越低。当然了,我们是有办法优化的。 首先我们可以优化 Loader 的文件搜索范围 module.exports = { module: { rules: [ { // js 文件才使用 babel test: /\.js$/, loader: 'babel-loader', // 只在 src 文件夹下查找 include: [resolve('src')], // 不会去查找的路径 exclude: /node_modules/ } ] } }    对于 Babel 来说,我们肯定是希望只作用在 JS 代码上的,然后 node_modules 中使用的代码都是编译过的

[CF1209F]Koala and Notebook_堆优化dij

江枫思渺然 提交于 2019-12-03 09:58:25
Koala and Notebook 题目链接 : https://codeforces.com/contest/1209/problem/F 数据范围 :略。 题解 : 开始的时候看错题了....莫名其妙多了一道好题嘻嘻嘻 这个题非常诡异,就是把所有的边连在一起写下来。 所以我们把边权按照每一位建一个点然后拆开,保证每条边都是有向边而且边权是个位数。 然后我们按照图的样子,边权都设为$1$跑一遍堆优化$dij$,因为数的大小比较不是字符串,长串绝对比短串大。 然后我们取出所有的有向边,满足$dis_u = dis_v - 1$,因为只有这样的有向边才有用。 紧接着我们枚举每一个$dis$,并对上一层的节点排个序,即上一层的节点$i$的排名是$rk_i$。 然后每个节点再维护一个$fr_i$表示这个点的最短路(答案)上一个点是啥,也就是上一层的哪个节点编号。 先通过枚举上一个节点的$rk$,求出当前所有点的$fr$,最后转移一下即可。 代码 :(我代码是抄的....略 来源: https://www.cnblogs.com/ShuraK/p/11787298.html

vue-cli3 项目从搭建优化到docker部署

易管家 提交于 2019-12-03 09:52:48
项目地址 vue-cli3-project 欢迎 star 原文地址 https://www.ccode.live/lentoo/list/9?from=art 1. 创建一个vue项目 相信大部分人都已经知道怎么创建项目的,可以跳过这一节,看下一节。 1.1 安装@vue/cli # 全局安装 vue-cli脚手架 npm install -g @vue/cli 等待安装完成后开始下一步 1.2 初始化项目 vue create vue-cli3-project 选择一个预设 可以选择默认预设,默认预设包含了 babel , eslint 我们选择更多功能 Manually select features 回车后来到选择插件 插件选择 这边选择了(Babel、Router、Vuex、Css预处理器、Linter / Formatter 格式检查、Unit测试框架) 路由模式选择 是否使用 history 模式的路由 (Yes) 选择一个css预处理器 (Sass/SCSS) 选择一个eslint配置 这边选择 ESLint + Standard config ,个人比较喜欢这个代码规范 选择什么时候进行 eslint 校验 选择(Lint on save)保存是检查 如果你正在使用的vscode编辑器的话,可以配置eslint插件进行代码自动格式化 选择测试框架 (Mocha +

对JavaScript 引擎基础:原型优化的研究 -----------------------引用

萝らか妹 提交于 2019-12-03 02:12:25
一、优化层级与执行效率的取舍 介绍了现代 JavaScript 引擎通用的工作流程: 我们也指出,尽管从高级抽象层面来看,引擎之间的处理流程都很相似,但他们在优化流程上通常都存在差异。为什么呢?为什么有些引擎的优化层级会比其他引擎多一些?事实证明,在快速获取可运行的代码与花费更多时间获得最优运行性能的代码之间存在一些取舍与平衡点。 解释器可以快速生成字节码,但字节码通常效率不高。 相比之下,优化编译器虽然需要更长的时间进行处理,但最终会产生更高效的机器码。 这正是 V8 在使用的模型。它的解释器叫 Ignition,(就原始字节码执行速度而言)是所有引擎中最快的解释器。V8 的优化编译器名为 TurboFan,最终由它生成高度优化的机器码。 我们往往需要在启动延迟与执行速度之间做出一些取舍,而这便是一些 JavaScript 引擎决定是否在流程中加入优化层的原因所在。例如,SpiderMonkey 在解释器和完整的 IonMonkey 优化编译器之间添加了一个 Baseline 层: 解释器可以快速生成字节码,但字节码执行起来相对较慢。Baseline 生成代码需要花费更长的时间,但能提供更好的运行时性能。最后,IonMonkey 优化编译器花费最长时间来生成机器码,但该代码运行起来非常高效。 让我们通过一个具体的例子,看看不同引擎中的优化流程都有哪些差异

优化Django的数据库连接

时光怂恿深爱的人放手 提交于 2019-12-03 01:34:00
Django的数据库连接 Django对数据库的链接处理是这样的,Django程序接受到请求之后,在第一访问数据库的时候会创建一个数据库连接,直到请求结束,关闭连接。下次请求也是如此。因此,这种情况下,随着访问的并发数越来越高,就会产生大量的数据库连接。也就是我们在压测时出现的情况 。 关于Django每次接受到请求和处理完请求时对数据库连接的操作,最后会从源码上来看看。 使用CONN_MAX_AGE减少数据库请求 上面说了,每次请求都会创建新的数据库连接,这对于高访问量的应用来说完全是不可接受的。因此在Django1.6时,提供了持久的数据库连接,通过DATABASE配置上添加CONN_MAX_AGE来控制每个连接的最大存活时间。具体使用可以参考最后的链接。 这个参数的原理就是在每次创建完数据库连接之后,把连接放到一个Theard.local的实例中。在request请求开始结束的时候,打算关闭连接时会判断是否超过CONN_MAX_AGE设置这个有效期。这是关闭。每次进行数据库请求的时候其实只是判断local中有没有已存在的连接,有则复用。 基于上述原因,Django中对于CONN_MAX_AGE的使用是有些限制的,使用不当,会事得其反。因为保存的连接是基于线程局部变量的,因此如果你部署方式采用多线程,必须要注意保证你的最大线程数不会多余数据库能支持的最大连接数。另外

项目代码优化(四)

匿名 (未验证) 提交于 2019-12-03 00:30:01
场景 此处省略 解释 英文 Early classes of the Java API , such as Vector , Hashtable and StringBuffer , were synchronized to make them thread - safe . Unfortunately , synchronization has a big negative impact on performance , even when using these collections from a single thread . It is better to use their new unsynchronized replacements : ArrayList or LinkedList instead of Vector Deque instead of Stack HashMap instead of Hashtable StringBuilder instead of StringBuffer Noncompliant Code Example Vector cats = new Vector (); Compliant Solution ArrayList cats = new ArrayList (); Exceptions Use of those

深度学习入门

匿名 (未验证) 提交于 2019-12-03 00:15:02
Deep Learning with Pytorch_002 chapter03_深入研究神经网络的构建块 在上一章中,我们使用Py Torch的低级操作来构建模块,如网络体系结构、损失函数和优化器。在本章中,我们将探讨解决现实世界问题所需的神经网络的一些重要组成部分,以及PyTorch如何通过提供大量的高级函数来抽象出大量的复杂性。 本章将讨论以下主题: 深入研究神经网络的各种构建块 探索PyTorch中的高级功能来构建深度学习体系结构 将深度学习应用在一个真实图像分类问题 任何深入的学习训练都需要获取数据,构建一个总体上是将一堆层聚集在一起的体系结构。 理解PyTorch为构建层、损失函数和优化器提供的更高层次的抽象。 层次――神经网络的基本块 最重要的层之一――线性层 对输入的数据应用线性变换: y = x A T + b y y = xA^T + by y = x A T + b y torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor 返回一个由均值为0、方差为1的正态分布(标准正态分布)中的随机数组成的张量。 o u t i N ( 0 , 1 ) o u t i N ( 0 , 1 ) torch.from

遍历的集合后的数据,如何组成一条字符串

匿名 (未验证) 提交于 2019-12-02 23:34:01
参考链接: https://zhidao.baidu.com/question/987351095931176779.html 重点是 定义一个变量 String a = null; a += (String) values.get(j) + ","; //每遍历一个值 就拼接。最后拼接成一个字符串。 } (如果代码可以优化的话,欢迎大神们指正。刚入行不久,希望大家不要介意我的菜。谢谢) 文章来源: https://blog.csdn.net/qq_33220391/article/details/90510361