Tag: 优化

为什么Haskell代码与-O运行速度较慢?

这块Haskell代码运行速度比-O慢得多,但是-O应该是非危险的 。 谁能告诉我发生了什么事? 如果重要的话,这是一个试图解决这个问题 ,它使用二进制search和持久段树: import Control.Monad import Data.Array data Node = Leaf Int — value | Branch Int Node Node — sum, left child, right child type NodeArray = Array Int Node — create an empty node with range [l, r) create :: Int -> Int -> Node create lr | l + 1 […]

每个程序员应该知道的内存?

我想知道,从2007年开始,Ulrich Drepper 每个程序员都应该知道什么内存仍然是有效的。 我也找不到比1.0更新的版本或勘误表。

C#中try / catch的真正开销是多less?

所以,我知道try / catch确实增加了一些开销,因此不是一个控制stream程的好方法,但是这个开销是从哪里来的?它的实际影响是什么?

通过GZIP压缩浏览器的兼容性和优势

更新2012年2月10日: zOompf在这里已经完成了一些非常深入的研究。 它胜过以下任何发现。 更新2010年9月11日: 这里为此创build了一个testing平台 一些背景信息的GZIP和DEFLATE(zlib)的HTTP 1.1定义: ''Gzip'是gzip格式, 'deflate'是zlib格式,为了避免与原始压缩数据格式混淆,可能应该调用第二个'zlib',而HTTP 1.1 RFC 2616正确指向在RFC 1950的zlib规范中,对于'deflate'传输编码, 已经有服务器和浏览器错误地产生或期望每个RFC 1951中的deflate规格的原始deflate数据, 特别是微软产品 ,所以即使'deflate'使用zlib格式传输编码将是更有效的方法( 实际上zlib格式的devise是什么 ),使用'gzip'传输编码可能是更可靠的,因为HTTP部分名称的不幸select1.1作者“。 (来源: http : //www.gzip.org/zlib/zlib_faq.html ) 所以,我的问题是:如果我用NO zlib wrapper(或者gzip)发送RAW deflate数据,是否有任何现代浏览器(例如IE6或更高版本,FF,Chrome,Safari等)无法理解原始缩减压缩数据(假设HTTP请求头“Accept-Encoding”包含“deflate”)? 放气数据总是比GZIP小几个字节。 如果所有这些浏览器都可以成功解码数据,那么发送RAW deflate而不是zlib有什么不利之处呢? 更新2010年9月11日: 这里为此创build了一个testing平台

什么是SQL Server中的PAGEIOLATCH_SH等待types?

我有一个查询,在交易中需要很长时间。 当我得到进程的wait_type时,它是PAGEIOLATCH_SH 。 这种等待types意味着什么?如何解决?

Java HashMap性能优化/替代

我想创build一个大的HashMap,但put()性能不够好。 有任何想法吗? 其他数据结构的build议是受欢迎的,但我需要Java Map的查找function: map.get(key) 在我的情况下,我想创build一个有2600万条目的地图。 使用标准的Java HashMap,在2-3百万个插入之后,投入率变得难以忍受。 此外,有没有人知道如果使用密钥的不同散列码分布可以帮助? 我的散列码方法: byte[] a = new byte[2]; byte[] b = new byte[3]; … public int hashCode() { int hash = 503; hash = hash * 5381 + (a[0] + a[1]); hash = hash * 5381 + (b[0] + b[1] + b[2]); return hash; } 我正在使用添加的关联属性来确保相等的对象具有相同的哈希码。 这些数组是字节,其值在0 – […]

在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, […]

将方法声明为静态的好处是什么?

我最近一直在浏览Eclipse中的警告,并碰到这个: 如果该方法可以被声明为静态,它将给出编译器警告。 在Eclipse帮助中的精确引用,强调私有和最终: 启用后,编译器将针对私有或最终方法以及仅引用静态成员的方法发出错误或警告。 是的,我知道我可以closures它,但我想知道打开它的原因? 为什么将每种可能的方法都声明为静态是一件好事? 这会给予任何性能好处吗? (在移动领域) 指出一个方法是静态的,我想表明你不使用任何实例variables,因此可以移动到一个实用程序样式类? 在一天结束的时候,我应该closures“忽略”还是应该修复它给我的100多个警告? 你认为这只是额外的关键字, 肮脏的代码,因为编译器将只是内联这些方法吗? (有点像你不声明每个variables,你可以最后, 但你可以 )。

什么更有效率? 使用pow来平方或只是乘以它自己?

这两种方法在C中更有效率? 以及如何: pow(x,3) 与 x*x*x // etc?

分析Vim的启动时间

使用Vim时,我已经有很多插件了 – 我已经收集了多年的插件。 我有点厌倦了Vim现在需要多长时间才能开始,所以我想介绍一下它的启动,看看我拥有的插件中有哪些是负责任的。 有什么办法来configurationVim的启动或脚本运行吗? 理想情况下,我想知道Vim花了多长时间加载每个Vim脚本。