Tag: 性能

处理大的位图

我有一堆图片url。 我必须下载这些图像并逐个显示在我的应用程序中。 我使用SoftReferences和Sdcard将图像保存在一个集合中,以避免重读和改善用户体验。 问题是我不知道有关位图的大小。 事实certificate,当我使用BitmapFactory.decodeStream(InputStream)方法时,我偶尔会发生OutOfMemoryException BitmapFactory.decodeStream(InputStream) 。 所以,我select使用BitmapFactory选项(sample size = 2)对图像进行缩减采样。 这给了更好的输出:没有OOM,但是这会影响较小图像的质量。 我应该如何处理这种情况? 有没有办法有select地降低采样高分辨率的图像?

为什么SSE标量sqrt(x)慢于rsqrt(x)* x?

我一直在分析我们在Intel Core Duo上的一些核心math,并且在研究各种平方根的方法时,我注意到一些奇怪的事情:使用SSE标量运算,取相反的平方根并乘以它得到sqrt,比使用本地的sqrt操作码! 我用一个循环来testing它: inline float TestSqrtFunction( float in ); void TestFunc() { #define ARRAYSIZE 4096 #define NUMITERS 16386 float flIn[ ARRAYSIZE ]; // filled with random numbers ( 0 .. 2^22 ) float flOut [ ARRAYSIZE ]; // filled with 0 to force fetch into L1 cache cyclecounter.Start(); for ( int i = 0 […]

RTTI有多贵?

我知道有使用RTTI的资源,但它有多大? 我所看到的任何地方都只是说“RTTI很昂贵”,但是他们都没有提供任何基准或定量数据来调节内存,处理器时间或速度。 那么,RTTI有多贵? 我可能在一个只有4MB内存的embedded式系统上使用它,所以每一个位都是重要的。 编辑: 根据S.罗特的答案 ,如果我包括我实际上在做什么会更好。 我正在使用一个类来传递不同长度的数据,并且可以执行不同的操作 ,所以使用虚拟函数很难做到这一点。 似乎使用一些dynamic_cast可以解决这个问题,允许不同的派生类通过不同的级别,但仍然允许他们完全不同的行为。 从我的理解, dynamic_cast使用RTTI,所以我想知道在一个有限的系统上使用是多么可行。

为什么Contains()运算符会显着降低entity framework的性能?

更新3:根据这个公告 ,EF小组已经在EF6 alpha 2中解决了这个问题。 更新2:我已经创build了一个解决这个问题的build议。 为了投票, 去这里 。 考虑一个具有一个非常简单的表的SQL数据库。 CREATE TABLE Main (Id INT PRIMARY KEY) 我用10,000条logging填充表格。 WITH Numbers AS ( SELECT 1 AS Id UNION ALL SELECT Id + 1 AS Id FROM Numbers WHERE Id <= 10000 ) INSERT Main (Id) SELECT Id FROM Numbers OPTION (MAXRECURSION 0) 我为表build立一个EF模型,并在LINQPad中运行以下查询(我使用“C#语句”模式,因此LINQPad不会自动创build一个转储)。 var rows = Main […]

iOS:以编程方式制作截图的最快速,最高效的方式是什么?

在我的iPad应用程序中,我想制作一个占用屏幕大部分的UIView屏幕截图。 不幸的是,子视图是非常深的嵌套,所以需要很长的时间才能制作屏幕截图并在之后卷动页面。 有没有比“平常”更快的方法? UIGraphicsBeginImageContext(self.bounds.size); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 如果可能的话,我想避免caching或重组我的观点。

build议在JavaScript无效之前包含CSS吗?

在网上无数的地方,我已经看到了在JavaScript之前包含CSS的build议。 推理一般是这种forms : 在订购CSS和JavaScript时,首先需要CSS。 原因在于呈现线程具有呈现页面所需的所有样式信息。 如果JavaScript包括第一,JavaScript引擎必须先parsing它,然后继续下一组资源。 这意味着渲染线程不能完全显示页面,因为它没有所需的所有样式。 我的实际testing揭示了非常不同的东西 我的testing线束 我使用下面的Ruby脚本为各种资源生成特定的延迟: require 'rubygems' require 'eventmachine' require 'evma_httpserver' require 'date' class Handler < EventMachine::Connection include EventMachine::HttpServer def process_http_request resp = EventMachine::DelegatedHttpResponse.new( self ) return unless @http_query_string path = @http_path_info array = @http_query_string.split("&").map{|s| s.split("=")}.flatten parsed = Hash[*array] delay = parsed["delay"].to_i / 1000.0 jsdelay = parsed["jsdelay"].to_i delay = 5 […]

什么是更有效的i ++或++我?

精确重复 : 在C ++中,i ++和++ i之间是否存在性能差异? 完全重复 : 在循环中的i ++和++之间的区别? 什么是更有效的i ++或++我? 我只在Java和C / C ++中使用过,但是我确实要求所有的语言都是这样实现的。 在大学里,我有一位教授向我们展示了++,我的效率更高,但已经有几年了,我想从SO社区获得意见。

尝试在PHP中的性能

在php 5中使用try-catch语句时需要考虑什么样的性能影响? 我以前在网上阅读过一些关于这个主题的旧的,看似矛盾的信息。 我目前必须使用的许多框架都是在PHP 4上创build的,缺less很多php 5的优点。所以,我没有太多的经验来使用php的try-catchs。

如何在.NET中测量代码性能?

我使用DateTime在一行C#代码上做了一些真正的快速和肮脏的基准testing: long lStart = DateTime.Now.Ticks; // do something long lFinish = DateTime.Now.Ticks; 问题在于结果: 开始时间[633679466564559902] 完成时间[633679466564559902] 开始时间[633679466564569917] 完成时间[633679466564569917] 开始时间[633679466564579932] 完成时间[633679466564579932] …等等。 鉴于开始和结束时间是相同的,Ticks显然不够精细。 那么,我怎样才能更好地衡量performance呢?

PHP / MySQL中的地理search(距离)(性能)

我有一个MySQL表(MyISAM),其中包含大约200k条经纬度/长对,根据来自另一个纬度/长度对的距离(大圆公式)select。 (例如,在50.281852,2.504883附近的10km范围内的所有条目) 我的问题是,这个查询大约需要0.28秒。 只为那些200k条目运行(每天继续获得更多)。 虽然0,28秒 通常会很好,这个查询运行的频率非常高,因为它支持我的web应用程序的主要function,而且通常是更大查询的一部分。 有什么办法可以加速吗? 显然,MySQL必须每次运行所有200k条目,并为每个条目执行大圆公式。 我在这里阅读了一些关于geohashing,R-Trees之类的东西,但是我不认为这是我想要去的方式。 部分原因是我从来没有成为一个math迷,但主要是因为我认为这个问题已经被图书馆/扩展等比我聪明的人解决了。 已经过广泛的testing,并且正在定期更新。 MySQL似乎有一个空间扩展,但没有提供一个距离函数。 我应该看另一个数据库来把这个坐标对? PostgreSQL似乎有一个相当成熟的空间扩展。 你知道吗? 或者,PostgreSQL也只是简单地使用大圆圈公式来获取特定区域内的所有条目? 有可能是一个专门的独立产品或MySQL的扩展已经做了我在找什么? 或者可能有一个PHP库,我可以用来做计算? 使用APC,我可以很容易地把经纬度对放入内存(这些200k条目大约需要5MB),然后在PHP中运行查询。 然而,这种方法的问题是,那么我会有一个MySQL查询像SELECT .. FROM .. WHERE id(id1,id2,..)所有的结果至多可以达到几千。 MySQL如何处理这些查询? 然后(因为这是一个数字处理任务)会这样做在PHP中足够快? 任何其他的想法我应该/不应该做什么? 完整版,这里是示例查询,剥离了任何不相关的部分(正如我所说,通常这是一个更大的查询,我join了多个表的一部分): SELECT id, 6371 * acos( sin( radians( 52.4042924 ) ) * sin( radians( lat ) ) + cos( radians( 50.281852 ) ) * cos( radians( lat […]