小编pet*_*hen的帖子

建模性能测量的分布

您将如何在数学上模拟重复实际性能测量的分布 - "真实生活"意味着您不仅仅是循环使用相关代码,而且它只是在典型用户场景中运行的大型应用程序中的一小段内容?

我的经验表明,你通常在平均执行时间周围有一个峰值,可以用高斯分布充分建模.此外,还有一个包含异常值的"长尾" - 通常是平均时间的倍数.(考虑到导致首次执行惩罚的因素,这种行为是可以理解的).

我的目标是模拟合理地反映这一点的聚合值,并且可以从聚合值计算(例如高斯,从N计算mu和sigma,值的总和和平方和).换句话说,重复次数是无限的,但应尽量减少存储器和计算要求.

正态高斯分布不能适当地对长尾进行建模,并且即使非常小的异常值也会使平均偏差很大.

我正在寻找想法,特别是如果之前已经尝试/分析过.我已经检查了各种发行版模型,我想我可以解决一些问题,但我的统计数据是生锈的,我可能最终得到一个夸张的解决方案.哦,一个完整的收缩包装解决方案也可以;)

其他方面/想法:有时你得到"两个驼峰"的分布,这在我的场景中是可以接受的,其中一个mu/sigma覆盖两者,但理想情况下将单独识别.

推断这个,另一种方法是"浮动概率密度计算",它只使用一个有限的缓冲区并自动调整到范围(由于长尾,箱可能没有均匀间隔) - 没有找到任何东西,但有一些关于分配的假设原则上应该是可能的.


为什么(因为有人问) -

对于复杂的过程,我们需要做出保证,例如"只有0.1%的运行超过3秒的限制,平均处理时间为2.8秒".隔离代码片段的性能可能与正常运行时环境有很大不同,后者涉及不同级别的磁盘和网络访问,后台服务,一天内发生的预定事件等.

这可以通过累积所有数据来平凡地解决.但是,为了在生产中积累这些数据,需要限制所产生的数据.对于孤立的代码片段的分析,高斯偏差加上第一次运行罚分是可以的.对于上面找到的分布,这不再起作用了.

[编辑]我已经得到了很好的答案(最后 - 也许 - 一段时间来研究这个问题).我正在寻找更多的投入/想法.

algorithm math statistics performance

18
推荐指数
1
解决办法
775
查看次数

RegEx - 重用子表达式

假设我有一个匹配十六进制32位数的正则表达式:

([0-9a-fA-F]{1,8})
Run Code Online (Sandbox Code Playgroud)

当我构建一个正则表达式,我需要多次匹配,例如

(?<from>[0-9a-fA-F]{1,8})\s*:\s*(?<to>[0-9a-fA-F]{1,8})
Run Code Online (Sandbox Code Playgroud)

我是否每次都必须重复子表达式定义,或者有没有办法"命名和重用"它?

我会想象(警告,发明语法!)

(?<from>{hexnum=[0-9a-fA-F]{1,8}})\s*:\s*(?<to>{=hexnum})
Run Code Online (Sandbox Code Playgroud)

where hexnum=将定义子表达式"hexnum",{= hexnum}将重用它.

因为我已经了解它很重要:我正在使用.NET System.Text.RegularExpressions.Regex,但一般的答案也会很有趣.

.net c# regex

18
推荐指数
2
解决办法
4890
查看次数

这个临时参考是否足够存活?

template <typename T>
T const & foo(T const & dflt) 
  { return /* ... */ ? /* ... */ : dflt; }

int x = foo(5);
Run Code Online (Sandbox Code Playgroud)

在分配给x之前,对临时的引用是否"存活"?

(我知道它在foo()调用的持续时间内存活,但是赋值让我犹豫)

有问题的代码在这里依赖于const引用有一些合法用途,即我需要两个独立的函数

T const & foo_cr(T  const & dflt);
T const & foo_v(T dflt);
Run Code Online (Sandbox Code Playgroud)

我想避免(只是依赖于同名的不同签名对我来说似乎有点危险.)

c++ temporary

16
推荐指数
1
解决办法
269
查看次数

是(w)ifstream支持不同的编码

当我使用wifstream将文本文件读取为宽字符串(std :: wstring)时,流实现是否支持不同的编码 - 即它是否可以用于读取例如ASCII,UTF-8和UTF-16文件?

如果没有,我该怎么办?

(我需要阅读整个文件,如果这有所不同)

c++ unicode stl character-encoding wifstream

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

C#+ COM Interop,确定性发布

COM对象通常具有确定性破坏:在释放最后一个引用时释放它们.

如何处理C# - COM Interop?这些类没有实现IDisposable,所以我认为无法触发显式的IUnknown :: Release.

随意测试显示未引用的COM对象被懒惰地收集(即垃圾收集器触发释放).对于需要被激活释放的OCM对象,我该怎么办?(例如持有大型或共享的关键资源)?

原始问题:我们有一个C#应用程序大量使用COM库,它像疯了一样泄漏.似乎问题是"在C++和C#代码之间"(我们可以访问它们),但我们无法确定它.

c# com interop

12
推荐指数
2
解决办法
3488
查看次数

const-ness作为模板参数

我有两个结构:

  // ----- non-const -----
  struct arg_adapter
  {
      EArgType type;  // fmtA, fmtB, ...

      union
      {
        TypeA * valueA;
        TypeB * valueB;
        // ... more types
      }

      arg_adapter(TypeA & value) : type(fmtA), valueA(&value) {}
      arg_adapter(TypeB & value) : type(fmtB), valueB(&value) {}
      // ...
  }

  // ----- const version -----
  struct const_arg_adapter
  {
      EArgType type;  // fmtA, fmtB, ...

      union
      {
        TypeA const * valueA;
        TypeB const * valueB;
        // ... more types
      }

      arg_adapter(TypeA const & value) : type(fmtA), valueA(&value) …
Run Code Online (Sandbox Code Playgroud)

c++ templates qualifiers

12
推荐指数
2
解决办法
3329
查看次数

如何告诉IE我的磁盘上的HTML文件不存在安全风险?

我们的构建脚本使用一些嵌入式JavaScript创建HTML日志.当我在Internet Explorer中打开它时,我得到IE阻止运行"脚本或activex控件"的黄色警告栏.

由于它是本地文件,我无法将其添加到受信任的站点(IE在此处需要一个域).

我不想更改默认区域的安全设置.

知道如何永久解锁吗?

XP版本的IE版本为7.0.5730.13.

javascript security internet-explorer

11
推荐指数
1
解决办法
1万
查看次数

git:隐藏/删除永远不会被版本化的文件

我正在尝试使用git和tortoise-git.

有没有办法隐藏永远不会被完全跟踪的文件?目前,当我提交更改时,所有临时构建文件与新文件位于相同的"未版本化"列表中.

git tortoisegit

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

COM接口指导

我没有太多的COM接口,所以我有一个小问题,说我有这个代码:

[Guid("148BD528-A2AB-11CE-B11F-00AA00530503"), 
 InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IEnumWorkItems {
    [PreserveSig()]
    int Next([In] uint RequestCount, [Out] out System.IntPtr Names, 
                       [Out] out uint Fetched);
    void Skip([In] uint Count);
    void Reset();
    void Clone([Out, MarshalAs(UnmanagedType.Interface)] 
                          out IEnumWorkItems EnumWorkItems);
}
Run Code Online (Sandbox Code Playgroud)

我怎么知道"148BD528-A2AB-11CE-B11F-00AA00530503"对应于IEnumWorkItems:http://msdn.microsoft.com/en-us/library/aa380706( VS.85).aspx

就像我想知道这个界面的GUID:http://msdn.microsoft.com/en-us/library/aa381811(VS.85).aspx我在哪里可以找到它?

.net c# com interface

11
推荐指数
1
解决办法
3347
查看次数

MAP文件分析 - 我的代码大小来自哪里?

我正在寻找一种工具来简化分析大型C++项目(VC6)的链接器映射文件.

在维护期间,二进制文件稳步增长,我想知道它来自哪里.我怀疑在不同的DLL之间共享的库中有一些过于夸张的模板扩展,但是jsut browsign这个地图文件没有给出好的线索.

有什么建议?

c++ linker code-size

10
推荐指数
1
解决办法
1万
查看次数