标签: optimization

C#中try/catch的实际开销是多少?

所以,我知道try/catch会增加一些开销,因此不是控制流程流的好方法,但是这种开销来自何处以及它的实际影响是什么?

.net c# optimization performance try-catch

92
推荐指数
5
解决办法
2万
查看次数

你如何测试VBA代码的运行时间?

在VBA中是否有代码可以包装一个函数,让我知道它运行的时间,以便我可以比较函数的不同运行时间?

testing optimization performance vba profiling

91
推荐指数
5
解决办法
13万
查看次数

有多少GCC优化级别?

有多少GCC优化级别?

我尝试了gcc -O1,gcc -O2,gcc -O3和gcc -O4

如果我使用一个非常大的数字,它将无法正常工作.

但是,我试过了

gcc -O100
Run Code Online (Sandbox Code Playgroud)

并编译.

有多少优化级别?

c compiler-construction optimization gcc

91
推荐指数
3
解决办法
5万
查看次数

在C++中实现长方程时,如何通过高级方法提高性能

我正在开发一些工程模拟.这包括实现一些长方程,例如这个方程,以计算橡胶类材料中的应力:

T = (
    mu * (
            pow(l1 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a
            * (
                pow(l1 * l2 * l3, -0.1e1 / 0.3e1)
                - l1 * l2 * l3 * pow(l1 * l2 * l3, -0.4e1 / 0.3e1) / 0.3e1
            ) * pow(l1 * l2 * l3, 0.1e1 / 0.3e1) / l1
            - pow(l2 * pow(l1 * l2 * l3, -0.1e1 / 0.3e1), a) * a / l1 / 0.3e1
            - pow(l3 * …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point optimization performance g++

91
推荐指数
6
解决办法
4436
查看次数

哪些列通常会成为好的索引?

作为" 什么是索引以及如何使用它们来优化我的数据库中的查询? " 的后续内容,我试图了解索引,哪些列是好的索引候选者?专门针对MS SQL数据库?

经过一些谷歌搜索,我读过的所有内容都表明,通常增加和唯一的列会产生一个很好的索引(比如MySQL的auto_increment),我理解这一点,但我使用的是MS SQL,我使用GUID作为主键,所以看来索引不会使GUID列受益......

database sql-server indexing optimization database-design

90
推荐指数
5
解决办法
7万
查看次数

与GZIP相比,缩小了压缩浏览器的兼容性和优势


更新2012年2月10日:

zOompf已经完成了这个题目了一些非常深入的研究在这里.它胜过下面的任何发现.


更新2010年9月11日:

一个测试平台已经为此创建这里




一些背景信息的GZIP和DEFLATE(zlib)的HTTP 1.1定义:

"'Gzip'是gzip格式,'deflate'是zlib格式.它们应该调用第二个'zlib'来避免与原始deflate压缩数据格式混淆.虽然HTTP 1.1 RFC 2616正确指向RFC 1950中针对'deflate'传输编码的zlib规范,有报告称服务器和浏览器根据RFC 1951中的deflate规范错误地生成或期望原始deflate数据,最明显的是Microsoft产品.所以尽管'deflate'使用zlib格式的传输编码将是更有效的方法(实际上正是 zlib格式的设计),使用'gzip'传输编码可能更可靠,因为HTTP上的名称选择不幸1.1作者." (来源:http://www.gzip.org/zlib/zlib_faq.html)

所以,我的问题是:如果我使用NO zlib包装器发送RAW deflate数据(或gzip,就此而言)是否有任何现代浏览器(例如,IE6和更高版本,FF,Chrome,Safari等)无法理解原始的deflate压缩数据(假设HTTP请求标头"Accept-Encoding"包含"deflate")?

放气数据总是比GZIP小几个字节.

如果所有这些浏览器都能成功解码数据,那么发送RAW deflate而不是zlib会有什么缺点?



更新2010年9月11日:

一个测试平台已经为此创建这里

compression optimization gzip zlib deflate

89
推荐指数
2
解决办法
4万
查看次数

合并和缩小多个CSS/JS文件

我试图通过合并和压缩CSS和JS文件来优化网站性能.我的问题更多的是关于如何实现这一目标的(具体)步骤,考虑到我所面临的真实情况(尽管如此,应该是其他开发人员中的典型情况).

我的页面引用了几个CSS和JS文件,如下所示:

<!--
  It's easier to work on smaller files during development.
  Hence, the multiple CSS and JS files.
-->
<link type="text/css" rel="stylesheet" href="/css/main.css" />
<link type="text/css" rel="stylesheet" href="/css/secondary-1.css" />
<link type="text/css" rel="stylesheet" href="/css/secondary-2.css" />

<script type="text/javascript" src="/scripts/js/main.js"></script>
<script type="text/javascript" src="/scripts/js/adapter/adapter.js"></script>
<script type="text/javascript" src="/scripts/js/adapter/title-adapter.js"></script>
Run Code Online (Sandbox Code Playgroud)

对于生产版本,我想将3个CSS文件合并为一个并使用例如YUI Compressor缩小它.但是,我需要更新所有需要这3个文件的页面来引用新近缩小的CSS.这似乎容易出错(例如,您正在删除并在许多文件中添加一些行).还有其他风险较小的方法吗?JS文件也存在同样的问题.

javascript css optimization http-compression yui-compressor

89
推荐指数
8
解决办法
17万
查看次数

不引人注目的JavaScript:HTML代码顶部或底部的<script>?

我最近阅读了雅虎宣言加速你的网站的最佳实践.他们建议我们尽可能将JavaScript包含在HTML代码的底部.

但究竟何时何地?

我们应该在收盘前</html>还是之后放?最重要的是,我们什么时候应该把它放在这个<head>部分?

javascript optimization performance coding-style

88
推荐指数
6
解决办法
6万
查看次数

什么时候,如果循环展开仍然有用?

我一直试图通过循环展开来优化一些极其性能关键的代码(一种快速排序算法,在蒙特卡罗模拟中被称为数百万次).这是我试图加速的内循环:

// Search for elements to swap.
while(myArray[++index1] < pivot) {}
while(pivot < myArray[--index2]) {}
Run Code Online (Sandbox Code Playgroud)

我尝试展开类似的东西:

while(true) {
    if(myArray[++index1] < pivot) break;
    if(myArray[++index1] < pivot) break;
    // More unrolling
}


while(true) {
    if(pivot < myArray[--index2]) break;
    if(pivot < myArray[--index2]) break;
    // More unrolling
}
Run Code Online (Sandbox Code Playgroud)

这完全没有区别所以我把它改成了更易读的形式.我曾经尝试过循环展开,但我有类似的经历.鉴于现代硬件上的分支预测器的质量,何时(如果有的话)循环展开仍然是一个有用的优化?

language-agnostic optimization performance micro-optimization

88
推荐指数
3
解决办法
4万
查看次数

打印所有JVM标志

找到一个有趣的JVM标志:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Run Code Online (Sandbox Code Playgroud)

它打印了数百种不同的选项,我以前从未听说过.它还会打印默认值,这有助于更好地诊断JVM行为.另一个有趣的标志是:

-XX:+UnlockExperimentalVMOptions
Run Code Online (Sandbox Code Playgroud)

有谁知道任何解释其中每一个的文件?

java printing optimization flags jvm

88
推荐指数
2
解决办法
5万
查看次数