相关疑难解决方法(0)

以有效的方式逐字节地比较数据(使用C++)

有没有比使用C++列表容器的比较运算符更有效地按字节比较数据的方法?

我要比较[大?10 kByte <size <500 kByte]按字节数量的数据,以验证外部存储设备的完整性.

因此,我按字节顺序读取文件并将值存储在无符号字符列表中.此列表的资源由shared_ptr处理,因此我可以在程序中传递它,而无需担心列表的大小

typedef boost::shared_ptr< list< unsigned char > > = contentPtr;
namespace boost::filesystem = fs;

contentPtr GetContent( fs::path filePath ){
 contentPtr actualContent (new list< unsigned char > );       
 // Read the file with a stream, put read values into actual content
return actualContent;
Run Code Online (Sandbox Code Playgroud)

这样做了两次,因为文件总是有两个副本.必须比较这两个文件的内容,如果发现不匹配则抛出异常

void CompareContent() throw( NotMatchingException() ){
 // this part is very fast, below 50ms
 contentPtr contentA = GetContent("/fileA");
 contentPtr contentB = GetContent("/fileB");
 // the next part takes about 2secs with …
Run Code Online (Sandbox Code Playgroud)

c++ comparison performance containers stl

6
推荐指数
1
解决办法
1951
查看次数

测量方法的哪个部分需要花费大量时间的最佳实践?

在我的初始化方法中,我调用其他一些方法,操作一些变量并迭代一些列表.现在我注意到加载方法需要一点点(大约2分钟).

但问题是,我不太确定该方法的哪一部分消耗了这么长时间.所以我想测量它,以便我可以在这个最有可能减少时间的部分上工作.

但衡量这一点的好方法是什么?

c# optimization

6
推荐指数
2
解决办法
1303
查看次数

GDB是否支持"运行时采样",或者是否有用户"扩展"来执行此操作

动机:我不能让google cpu profiler在代码运行的机器上工作(我的最后一口气我诅咒libunwind :)),所以我想知道gdb是否支持高频随机暂停程序执行,存储函数的名称发生中断并计算它在函数x中暂停的次数.这就是我所谓的"运行时采样",可能有更精确/更智能的名称.我查看了oprofile,但它很复杂到a)弄清楚它是否可以做到这一点b)弄清楚如何做它编辑:显然正确的名称是:"统计抽样方法"

编辑2:为什么我为此提供赏金的原因是我在SO上看到一些人推荐手动中断10-20x并用bt检查堆栈...当谈到时间时似乎非常浪费,所以我猜测一些智能ppl自动化它.:)
EDIT3:gprof不会削减它...我最近在ARM系统上尝试运行它并且输出是垃圾...... :(我猜它多线程的麻烦就是这个原因......

profiling gdb

6
推荐指数
1
解决办法
5364
查看次数

无法启动visual studio profiler

我有VS 2010旗舰版.我创建了空的win32控制台解决方案并用http://pastebin.com/EQJKJK6T替换了它的cpp文件我试图执行CPU采样分析.但由于某种原因,我得到以下消息

消息框:

无法启动'exe文件的路径'.以前尝试分析应用程序的尝试未成功完成.请重启应用程序.

输出窗口:

Profiling started.
Warning VSP2355: Some Windows counters will not be collected.  Without this data, some performance rules may not fire.
Profiling process ID 4368 (test).
Process ID 4368 has exited.
Data written to e:\projects\test\test101224.vsp.
Profiling finished.
PRF0025: No data was collected. 
Profiling complete.
Run Code Online (Sandbox Code Playgroud)

profiler visual-studio vsperfmon

5
推荐指数
1
解决办法
3390
查看次数

如何编写一个简单的代码分析器?

我想知道像 quantify 这样的产品如何在不修改代码的情况下测量函数/方法中花费的时间。有人知道吗?

您是否有描述如何开始编写自己的工具的网页?

c++ profiling visual-studio

5
推荐指数
0
解决办法
2613
查看次数

分析.net多线程应用程序(Visual Studio 2008)

我最近安装了Visual Studio 2008 TS(eval),以便能够对应用程序进行一些分析.现在我只知道当应用程序比"Hello World"更复杂时我对(真实世界)分析知之甚少.

我的主要问题是集成调试器似乎增加了所有线程所花费的时间,所以我得到总运行时间的几倍,某些函数(如sleep)会出现几次,我假设它们被多个线程调用.

现在我的问题是:我怎样才能让这个更容易检查?我只感兴趣的一个主题(主要是完成所有工作),其他人只是在等待某些东西,完全受到主线程运行时间的限制.(它们在相同的模块中,有时也称为相同的功能.)

有没有办法设置分析?有什么方法可以处理结果,以使它们对我的场景更有意义吗?除VS 2008之外的任何其他解决方案(如2010或外部探查器)?

我现在正在使用仪器(在我的视图中给出了比在我的视图中采样更好的结果)和.net 3.5下的C#.

c# performance profiler multithreading profiling

4
推荐指数
1
解决办法
988
查看次数

用于测试应用程序以提高性能的软件

我正在寻找软件来进行基准测试,分析,代码和应用程​​序的性能.像英特尔VTune这样的东西.

任何人都可以给我一些名字,免费或付费,针对c#apps.

谢谢

c# performance benchmarking analysis

3
推荐指数
1
解决办法
381
查看次数

低开销的Ruby分析?

我有一个Ruby程序,大约需要4分钟才能完成任务,我想把它降到1分钟以下.

我尝试了宝石中的ruby-prof,但是它使运行时间增加到约30分钟,甚至看起来都没有特别好地保持单调性(一些变化可靠地提高了性能 - 使用剖析器并且可靠地降低了性能 - 没有剖析器).此任务也无法真正分解为可以独立进行有意义分析的部分.

目前以最低开销分析Ruby代码的最佳方法是什么?

我使用OSX,但如果由于任何原因,探测器需要另一个操作系统,我可能会重新启动.

编辑:perftools.rb具有更低的开销,但结果看起来相当可疑诚实,超出任何合理的抽样错误 - 至少它必须搞乱GC或i/o缓冲或类似的东西,导致很多愚蠢的错误归因.它仍然击败了ruby-prof.

我会保持问题公开,万一有人知道比这更好的事情.

ruby profiling ruby-prof

2
推荐指数
1
解决办法
1305
查看次数

测试C++代码的性能

我可以使用哪些免费工具来测试Linux中C++代码的性能?基本上我想确定代码的瓶颈并提高性能.我的应用程序主要涉及使用来自网络的数据的计算代码.所以我想提高代码的执行速度.

谢谢.

c++ linux performance profiling

2
推荐指数
1
解决办法
1793
查看次数