小编Coo*_*ame的帖子

JS的Chrome CPU Profile中的'self'和'total'之间的区别

JS代码的Chrome CPU分析中的"自我"和"总"列之间有什么区别?

在此输入图像描述

javascript profiling google-chrome

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

list.RemoveAt(0)的通用列表有多贵?

C#,. NET4.

我们有一些性能关键代码导致一些问题.它是一种经过修改的队列,实际上是由List支持的.我想知道在索引0处删除元素是多么昂贵.想到的问题是:

  • 根据List的支持方式,在RemoveAt()之后是否会发生任何内存分配/解除分配以补偿列表的新大小?我知道,例如,调整阵列大小可能很昂贵(相对而言)
  • 我总是想象列表的行为类似于链表,这样在零位置删除一个元素就意味着只需将列表开头参考从前一个零元素调整到以前是第一个元素(但现在是第一个元素).但是,我的"想象力"和现实并不总是一致的.

我一直认为RemovedAt是O(1)的列表.是这样的吗?

.net c#

21
推荐指数
2
解决办法
9406
查看次数

MvcMiniProfiler是否需要Web应用程序才能工作,或者它是否可以在纯库中使用,例如在单元测试中?

我真的很喜欢我见过的有关MvcMiniProfiler的内容.我喜欢在非Web应用程序(Windows服务,单元测试等)上使用SQL监视功能.这可能,还是需要HTTP环境?明显的区别是结果传递,但如果我可以将结果序列化为JSON或某些,那就没问题了.

我把一个简单的单元测试放在一起试图让它工作,但MiniProfiler.Current似乎总是为空,即使在执行之后MiniProfiler.Start().

我在这里吠叫错了吗?

.net mvc-mini-profiler

15
推荐指数
1
解决办法
969
查看次数

VisualStudio调试器退出时执行代码

我假设在终止调试时(例如通过点击"停止"按钮,或按Shift + F5),任何实现终结器或IDisposable的类都将被处理掉.

我有一些实现IDisposable的类.当应用程序从调试器退出时(或从生产中崩溃),我想做(尝试)并执行一些操作.现在,Dispose()似乎没有被调用,也没有终结器IDisposable

有没有办法做到这一点?

.net c# dispose .net-4.0 finalizer

14
推荐指数
1
解决办法
2234
查看次数

MS Excel中的条件中位数

我正在尝试计算图表的条件中位数,如下所示:

A  |  B
-------
x  |  1
x  |  1
x  |  3
x  |  
y  |  4
z  |  5
Run Code Online (Sandbox Code Playgroud)

我正在使用MS Excel 2007.我知道AVERAGEIF()语句,但没有相应的中位数.主要技巧是有没有数据的行 - 例如上面的第4个"a".在这种情况下,我不希望在计算中考虑这一行.

谷歌搜索建议如下,但Excel不接受公式格式(也许是因为它是2007年?)

=MEDIAN(IF((A:A="x")*(A:A<>"")), B:B)
Run Code Online (Sandbox Code Playgroud)

Excel给出一个错误,说我的公式有问题(与条件中的*有关)我也尝试过以下方法,但它在计算中将空白单元格计为0:

=MEDIAN(IF(A:A = "x", B:B, "")
Run Code Online (Sandbox Code Playgroud)

我知道那些公式返回Excel"数组",这意味着必须输入"Ctrl-shift-enter"才能使其正常工作.

如何进行条件评估而不考虑空白单元格?

excel worksheet-function median

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

此断点目前不会被命中,源代码与原始代码不同(即使在清理/重建后)

.NET 4,控制台应用程序.该项目设置为"调试"模式.正在设置的断点位于主/启动项目中.我在解决方案和项目级别右键单击 - >清除,右键单击 - >重建.

按照此SO问题中的说明,我已确认我的"构建和运行"选项设置为"当项目已过期时"和"发生构建或部署错误时"的"提示",并且我没有得到当我F5构建/运行时的提示.

此外,还选择了"在构建之前"下的"保存所有更改"(另外我自己手动保存).

我监视了应用程序的输出窗口,看到这一行:

 'MyApplication.exe': (Managed (v4.0.30319)): Loaded 'C:\exepath' Symbols Loaded.
Run Code Online (Sandbox Code Playgroud)

我重新启动了VS2010实例.我重新启动了所有打开的VS2010实例(其他项目).我甚至经历过重启.

但是,我在启动项目中设置的断点是一个空心红色的圆圈,注意到"此断点当前不会被击中,源代码与原始断点不同",实际上从未被击中.

所以,这真的有两个问题:

1)如何解决这个问题,以便我可以正确断点

2)当我看到这个时,这是否意味着我的代码是从较旧的版本执行的?

debugging .net-4.0 visual-studio-2010

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

LINQ:目标数组不够长,无法复制集合中的所有项目.

我有一个Dictionary<string, mystruct>实例,我正在抓取所有值的列表:

var list = m_Records.Values.ToList();
Run Code Online (Sandbox Code Playgroud)

我偶尔会收到以下错误:

ArgumentException
Destination array is not long enough to copy all the items in the collection. Check array index and length.
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚从一条非常基本的路线到底是怎么回事.当VS2010中断该错误时,我可以检查m_Records并看到它有24个条目(稍有不同).但它确实有值,m_Records肯定不是null.

.net linq .net-4.0

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

使用DateTime.ParseExact时,如何指定给定日期的时区?

鉴于以下内容:

DateTime.ParseExact(timeStamp, "yyyyMMdd-HH:mm:ss.fff", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

如何指定给定时间是UTC?现在结果是给我当前的时区.

.net c# timezone datetime

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

DateTime.ParseExact字符串格式不断抛出错误

我有一个DateTime的字符串表示,如下所示:

2011-05-25T16:42:17.156Z
Run Code Online (Sandbox Code Playgroud)

我没试过就试过以下内容:

DateTime.ParseExact(formatted, "yyyy-MM-ddThh:mm:ss.fffZ", CultureInfo.CurrentCulture);
DateTime.ParseExact(formatted, "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.CurrentCulture);
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.AssumeUniversal);
DateTime.ParseExact(formatted, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), CultureInfo.CurrentCulture, DateTimeStyles.None);
Run Code Online (Sandbox Code Playgroud)

所有这些都给出了错误:

String was not recognized as a valid DateTime.
Run Code Online (Sandbox Code Playgroud)

标准DateTime.Parse似乎可行,但出于性能原因,我们正在探索ParseExact.这似乎应该是非常直接的,但似乎无法让它工作.

.net datetime

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

如何找出这些 dwFlags 常量的值?

我正在查看ChangeDisplaySettings的 MSDN 文档。对于 dwFlags 选项,您可以传入 0 或其他列出的标志之一。但是,我无法弄清楚如何直接引用这些标志,也无法弄清楚它们的实际long值是什么来代替它们。

我使用以下命令从 C# 应用程序进行这些调用:

[DllImport("User32.dll")]
public static extern long ChangeDisplaySettings(ref DeviceMode lpDevMode, int dwflags);
Run Code Online (Sandbox Code Playgroud)

有没有办法可以直接引用这些标志,或者,除此之外,找出它们的实际值是什么?

.net c# unmanaged dllimport

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

尝试抓取LookupId时,Send()之后的MSMQ InvalidOperationException

Windows 7 32位,.NET4.具体来说,当我这样做时:

_queue.Send(mqMessage);
return mqMessage.LookupId;
Run Code Online (Sandbox Code Playgroud)

我在LookupId的访问上得到一个InvalidOperationException.异常消息是:

未为此消息定义查找标识符.该消息不是通过调用Receive方法创建的,或者查找标识符未添加到要检索的属性中.

对我来说这听起来好像消息没有成功发送到MSMQ.我在"控制面板"\"所有控制面板项目\程序和功能"中的"打开或关闭Windows功能"选项中安装了所有与MSMQ相关的功能.

如果我查看本地Windows服务,我会看到"消息队列"和"消息队列触发器"已启动并正在运行.

知道这里发生了什么吗?

.net msmq windows-7

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