标签: metrics

优化或"调整"LINQ表达式的最佳方法是什么?

在构造LINQ表达式时(对我来说,linq到对象)有许多方法可以完成某些事情,有些方法比其他方法更好,更好,更有效.

  • 是否有一种"调整"或优化这些表达式的好方法?
  • 人们使用什么基本指标,你如何收集它们?
  • 有没有办法获得"总迭代次数"或其他一些指标,你可以"知道"更低意味着更好?

编辑

感谢Richard/Jon的回答.

看起来我真正想要的是为LINQ表达式获取一个简单的Operation Count"OCount",虽然我不确定LINQ中是否存在钩子以允许它.假设我具有特定机器硬件(SLA)的目标性能级别.理想情况下,我会添加一个单元测试来确认通过该查询移动的典型数据将在指定的时间内(来自SLA)进行处理.问题是这将在构建服务器/开发人员机器/等上运行.这可能与SLA的机器硬件几乎没有相似之处.因此我的想法是,我将确定表达式的可接受的最大"OCount",知道如果OCount小于X,它肯定会在目标"典型"硬件上的SLA下提供可接受的性能.如果OCount超过此阈值,构建/单元测试会产生警告.理想情况下,我想有这样的东西(pseudocode-ish):

var results = [big linq expression run against test dataset];
Assert.IsLess(MAXALLOWABLE_OCOUNT, results.OCount)
Run Code Online (Sandbox Code Playgroud)

其中results.OCount只是给我生成结果集所需的总迭代次数(n).

我为什么喜欢这个?

好吧,即使是中等大小的LINQ表达式,由于增加了整体操作次数,一小部分更改/添加也会对性能产生巨大影响.应用程序代码仍将通过所有单元测试,因为它仍然会产生正确的结果,但在部署时工作速度很慢.

另一个原因是简单的学习.如果你做了什么并且OCount上升或下降了一个数量级,那么你就会学到一些东西.

编辑#2 我也会提出一个潜在的答案.它不是我的,它来自Cameron MacFarland来自另一个问题,我问这个产生了这个问题.事实证明,我认为这个问题的答案可以在单元测试环境中工作,就像我在第一次编辑这个问题时描述的那样.

它的本质是在单元测试夹具中创建测试数据集,您可以按照本答案中概述的方式将其输入LINQ表达式,然后将迭代计数相加并与最大允许迭代计数进行比较.

请参阅Cameron的答案

linq optimization metrics query-optimization

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

是时候通过LOC了解一个程序

关于根据LOC(代码行)数量理解程序需要多长时间,是否有任何广泛的,过于概括的,无用的规则?

(我知道任何规则都是广泛的,过于概括的,而且几乎没用.这没关系.)

(有问题的语言是Delphi,但这并不重要,因为我正在寻找广泛的,过于概括的,几乎无用的规则.)

metrics

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

如何在Eclipse中的类型(接口/类/枚举)中获取方法计数?

我想知道接口声明了多少个方法或者类/枚举实现了多少个方法.如何在Eclipse中获得它?

eclipse methods metrics count

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

您如何获得WCF性能指标?

WCF是一个通用的通信框架,你使用的越多,你发现的调整就越多(端点,安全性,序列化等).我有一个对许多QoS属性敏感的应用程序,我想开始调整设置,以了解每个设置如何影响这个基于WCF的应用程序的带宽,延迟和可伸缩性.

据我所知,收集以下指标没有一般的切入点,但我希望我们能够提出一个收集它们的技术列表:

  • 通话次数
  • 往返时间
  • 带宽利用率
  • 请求和响应的序列化大小

FWIW,我不介意捕获这些指标,只要有合理的入口点我可以插入钩子(即使这意味着潜入特定的实现 - 例如DuplexChannel).

c# wcf metrics

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

为什么在Dropwizard指标中使用CachedGauage?

我看到CachedGaugeDropWizard Metrics(以前的Coda Hale Metrics)lib中有.我不知道为什么会有人曾经用这个?!?

指标价值的理解是它是实时,准确和相关的.如果度量标准报告过时/缓存值,它可能用于什么目的?

java metrics dropwizard codahale-metrics

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

收集实时GC指标 - Golang

Go中是否有一种直接的方式来获取有关GC和堆大小的信息,以便将它们暴露给监视仪表板.我看了一下运行时包,但似乎并没有那样做.理想情况下,这不需要任何开销,例如在分析模式下运行应用程序等,但应该是生产就绪.

metrics garbage-collection go

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

无法在eclipse neon 1中安装公制插件

我在ubuntu 14.04上使用eclipse neon.1并且我想安装公制插件,它一直说"无法完成配置操作.请更改您的选择并重试.请参阅下面的详细信息."

详细信息:无法完成安装,因为找不到一个或多个必需的项目.正在安装的软件:Metrics Feature 3.14.1.201104282140(com.stateofflow.eclipse.metrics.feature.feature.group 3.14.1.201104282140)缺少要求:Metrics插件3.14.1.201104282140(com.stateofflow.eclipse.metrics 3.14.1.201104282140)需要'捆绑org.eclipse.core.runtime.compatibility 0.0.0'但无法找到它无法满足依赖性:From:Metrics Feature 3.14.1.201104282140(com.stateofflow.eclipse.metrics.feature.feature.group 3.14.1.201104282140)To: com.stateofflow.eclipse.metrics [3.14.1.201104282140]

eclipse metrics eclipse-plugin

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

普罗米修斯距离向量联合

我有两个范围向量(命中率和未命中数),我想按它们的类型进行汇总。有些类型有命中率,其他类型有命中率,有些兼有。这是我试图求和的两个独立指标,但所得向量没有意义。它缺少了一些价值,我认为这是因为它们要么全命中,要么全命中。我这样做是完全错误的方式吗?

sum by (type) (increase(metric_hit{}[24h]) + sum by (type) (increase(metric_miss{}[24h])
Run Code Online (Sandbox Code Playgroud)

monitoring metrics grafana prometheus

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

弹簧启动执行器/千分尺度量禁用一些

有没有办法在执行器/千分尺中关闭一些返回的公制值?现在看着它们我已经看到了1000左右,并希望将它们减少到少数几个说100实际被发送到我们的注册表.

metrics spring-boot-actuator micrometer

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

PySpark中的自定义评估器

我想使用排名指标(MAP @ k)优化PySpark管道的超级参数。我已经在文档中看到了如何使用评估(Scala)中定义的指标,但是由于尚未实现MAP @ k,因此我需要定义一个自定义的评估器类。所以我需要做类似的事情:

model = Pipeline(stages=[indexer, assembler, scaler, lg])
paramGrid_lg = ParamGridBuilder() \
    .addGrid(lg.regParam, [0.001, 0.1]) \
    .addGrid(lg.elasticNetParam, [0, 1]) \
    .build()

crossval_lg = CrossValidator(estimator=model,
                      estimatorParamMaps=paramGrid_lg,
                      evaluator=MAPkEvaluator(), 
                      numFolds=2)
Run Code Online (Sandbox Code Playgroud)

MAPkEvaluator()我的自定义评估师在哪里。我见过类似的问题,但没有答案。

是否有任何示例或文档可用?有谁知道是否可以在PySpark中实现它?我应该采用什么方法?

metrics cross-validation pyspark

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