动机:我的任务是测量我的CUDA C代码的Karp-Flatt度量和并行效率,这需要计算加速.特别是,我需要将所有这些指标绘制为处理器数量的函数p.
定义: 加速是指并行算法比相应的顺序算法快多少,定义为:

问题:我已经在CUDA C中实现了我的算法,并且已经计时了Tp.但是,在确定时仍存在一些问题Sp:
T1不完全重写代码的情况下观察?
p时候我运行不同的内核与不同数量的线程?
非常感谢.
我正在寻找一个Java代码分析器,我可以用它来分析我的应用程序(它是一个在后端运行的服务)生产(所以意味着低头,它不能减慢我的应用程序).主要是我想调用树分析,也就是说a()调用b()然后b()调用c(),然后a()b()和c()花了多少时间,包括和包含.
见过jvisualvm和jprofiler,但这不是我所期待的,因为我不能配合我的生产应用程序到他们,因为它会造成重大的性能问题.
此外,我确实通过了metrics(https://github.com/dropwizard/metrics),但它没有给我一个功能来分析调用树.
Callgrind(http://valgrind.org/docs/manual/cl-manual.html)类型库是我需要的,因为它提供了调用树分析功能和高级选项,如避免调用循环(递归).但是我不确定Callgrind是否可以用于生产,因为它会在程序终止时转储数据.
任何人都可以建议用于java的好的调用树分析器,可以在不影响性能的情况下用于生产吗?
在 sklearn.metrics.f1_score 中,f1 分数有一个名为“average”的参数。宏观、微观、加权和样本是什么意思?请详细说明,因为在文档中,没有正确解释。或者简单地回答以下问题:
我正在尝试使用千分尺注释应用普罗米修斯指标@Timed。我发现它们只适用于控制器端点,而不适用于“简单”的公共和私有方法。
给出这个例子:
@RestController
public class TestController {
@GetMapping("/test")
@Timed("test-endpoint") //does create prometheus metrics
public String test() {
privateMethod();
publicMethod();
return "test";
}
@Timed("test-private") //does NOT create prometheus metrics
private void privateMethod() {System.out.println("private stuff");}
@Timed("test-public") //does NOT create prometheus metrics
public void publicMethod() {System.out.println("public stuff");}
}
Run Code Online (Sandbox Code Playgroud)
创建以下指标:
...
# HELP test_endpoint_seconds
# TYPE test_endpoint_seconds summary
test_endpoint_seconds_count{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 1.0
test_endpoint_seconds_sum{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 0.0076286
# HELP test_endpoint_seconds_max
# TYPE test_endpoint_seconds_max gauge
test_endpoint_seconds_max{class="com.example.micrometerannotationexample.TestController",exception="none",method="test",} 0.0076286
...
Run Code Online (Sandbox Code Playgroud)
没有找到@Timed("test-private")和 的指标@Timed("test-public"),这是为什么?
注意:我在这个 github thread上读到,Spring …
在阅读了"计算代码指标"问题的答案后,我安装了工具SourceMonitor并计算了一些指标.
但我不知道如何解释它们.
指标的"好"值是多少?
我在文档中找不到任何提示,有人可以帮助我吗?
如果有人能够根据Visual Studio的Code Metrics规则向我解释以下两段代码之间的区别,我将不胜感激.如果我不将所有内容封装在内,为什么可维护性指数会略有增加using ( )?
样本1(MI分数为71)
public static String Sha1(String plainText)
{
using (SHA1Managed sha1 = new SHA1Managed())
{
Byte[] text = Encoding.Unicode.GetBytes(plainText);
Byte[] hashBytes = sha1.ComputeHash(text);
return Convert.ToBase64String(hashBytes);
}
}
Run Code Online (Sandbox Code Playgroud)
样本2(MI分数为73)
public static String Sha1(String plainText)
{
Byte[] text, hashBytes;
using (SHA1Managed sha1 = new SHA1Managed())
{
text = Encoding.Unicode.GetBytes(plainText);
hashBytes = sha1.ComputeHash(text);
}
return Convert.ToBase64String(hashBytes);
}
Run Code Online (Sandbox Code Playgroud)
我理解指标在更广泛的背景和理解之外是没有意义的,程序员应该行使自由裁量权.虽然我可以将分数提高到76 return Convert.ToBase64String(sha1.ComputeHash(Encoding.Unicode.GetBytes(plainText))),但我不应该.我显然只是在玩数字,而且在那一点上它并不是真正的可读性或可维护性.我很好奇这个案例增加背后的逻辑是什么.这显然不是行数.
我的团队正在使用Mercurial,我想知道每个团队成员的相对贡献.我知道我们无法通过代码行来衡量生产力,但我想看看每个人是否至少贡献了一些东西,即使它后来被其他人覆盖了.因此,我不仅希望看到谁负责当前版本(Mercurial annotate),而是通过所有修订递归执行此操作,理想情况下使用可轻松可视化或转储到电子表格中的输出.
有小费吗?
我们一直在寻找测量TypeScript代码质量的好工具.主要是,我们感兴趣的是测量Cyclomatic Complexity,LCOM,不稳定性和类似指标.用于可视化模块之间的依赖关系的工具也很不错.
一种"NDepend for typescript"会很棒 - 但是我们找不到类似的东西......
有人能指出我们提供某些此类功能的工具的方向吗?
dependencies metrics static-analysis code-metrics typescript
在Counter和之间做出决定时Gauge,Prometheus 文档指出
在计数器和仪表之间进行选择,有一个简单的经验法则:如果值可以下降,它就是一个仪表。计数器只能上升(并重置,例如当进程重新启动时)。
它们似乎涵盖了重叠的用例:您可以使用只会增加的仪表。那么为什么要首先创建 Counter 指标类型呢?为什么不简单地将 Gauges 用于两者?
虽然LOC(#行代码)是对代码复杂性的有问题的衡量,但它是最受欢迎的,并且在非常仔细地使用时,可以提供对代码库的至少相对复杂性的粗略估计(即,如果一个程序是10KLOC)另一个是100KLOC,用相同的语言编写,由大致相同能力的团队编写,第二个程序几乎肯定要复杂得多).
在计算代码行时,您是否更愿意计算注释?测试怎么样?
我见过各种方法.像cloc和sloccount这样的工具允许包含或排除注释.其他人认为评论是代码的一部分及其复杂性.
单元测试存在同样的困境,有时可以达到测试代码本身的大小,甚至超过它.
我已经看到了整个范围内的方法,从仅计算"操作"非注释非空白行到"XXX行测试,注释代码",这更像是在所有代码文件中运行"wc -l"项目".
您的个人偏好是什么?为什么?
metrics ×10
code-metrics ×3
java ×2
performance ×2
prometheus ×2
c# ×1
cuda ×1
dependencies ×1
gpgpu ×1
jprofiler ×1
measurement ×1
mercurial ×1
monitoring ×1
profiling ×1
python ×1
python-3.x ×1
refactoring ×1
scikit-learn ×1
spring-boot ×1
typescript ×1