草庐IT

分析预测

全部标签

java - 哪种静态分析工具用于扫描从一种方法到另一种方法的数据流?

假设我的库中有两种方法:voidcom.somepackage.SomeClass.someSink(Strings)和intcom.someotherpackage.SomeOtherClass.someSource(inti)在我的代码中,第一种方法用作数据接收器,而第二种方法用作数据源。类型参数int、String只是举例,实际情况可能会有所变化。我想在满足下面给出的特定模式的某些代码中检测这些方法的用法:一些数据(比如x)是由源生成的一些数据(例如y)是使用一系列转换生成的f1(f2(...fn(x))y被提供给接收器。转换可以是任意函数,只要从为接收器生成数据的函数到从源接收

java - 分析堆转储,Map#size() 不是一个函数?

得到这个奇怪的错误:javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:TypeError:size不是一个函数,它是空的。(#1)在VisualVM上分析堆转储并运行此OQL查询时:select{map:x}fromjava.util.concurrent.ConcurrentHashMapxwherex.size()问题出在where子句上,虽然Map显然有一个size方法,但不知何故它不起作用。 最佳答案 @ruakh的回答非常好

java - 大规模文档共现分析

我有大约1000个文件。其中每个包含大约20,000个文档。我还有一个大约1,000,000个单词的列表。我想计算每个词与任何其他词出现的次数。因此,存在大小为1MX1M的稀疏矩阵。为了加快计算速度,我通过执行以下操作分别处理每个文件:1-我机器中的每个内核都在处理一个文件并输出以下格式的文件WordId1WordId2Frequency2-完成每个文件后,我将1000个文件合并为一个文件。这是我目前的方法,但它需要很长时间才能完成,我认为应该有更有效的方法来完成,因此欢迎您提出意见。 最佳答案 我做过这样的一些统计,我把工作分成两

java - VisualVM 无​​法在 Eclipse 上分析 Web 应用程序

我想分析我在Tomcat和Eclipse上运行的SpringWeb应用程序。我将VisualVM添加到Eclipse并按照以下步骤运行应用程序以进行分析。Rightclickontheapplicationname>RunAs>RunConfiguration>JavaApplication>'SelectedProject'>Set'org.apache.catalina.starup.Boostrap'asavalueforMainclass,alsoselectedVisualVMastheLauncher>clickedonRunbutton.VisualVM启动但显示以下消息

java - 哪些 DTrace 脚本值得在 Solaris 上测试和分析 Java 程序

我找到了DTrace很有趣,但我个人未能看到一个用例可以让我获得信息,如果不使用DTrace,我无论如何也无法获得这些信息。因此,我想听听我忽略了什么。我可以在带有DTrace的vmwareOpenIndianabuild148上做些什么,这在创建独立应用程序和JavaEEWeb应用程序(其中大部分应用程序与使用套接字的遗留后端进行大量通信)时会有所不同?非平凡的Dtrace脚本非常受欢迎。 最佳答案 我对DTrace有一些很好的体验。我有一个客户端在24x7运行的生产服务器上运行我们的Java代码。我们在应用程序方面遇到了一些性能

java - JVM 有它的运行时分支预测吗?如果是这样,Java 代码中是否有提示分支结果的方法?

正如标题所说:我记得在某些C编译器(例如GCC)中,我们能够向编译器提示可能的分支预测结果。JVM有这样的功能吗?谢谢! 最佳答案 除非我忘记了一些新注释,否则不会。另一方面,尚不清楚这样的功能会有多有用。请记住,与C/C++等语言不同,源代码级别的“预测”不一定是最佳策略,因为代码在运行时实际上在做什么并不神秘:JVM可以潜在地监视关键行为,并在必要时根据其测量结果重新编译代码段。 关于java-JVM有它的运行时分支预测吗?如果是这样,Java代码中是否有提示分支结果的方法?,我们在

java - 在 macOS 上使用 DTrace 分析 Java 应用程序

我正在尝试在macOSSierra10.12上使用DTrace分析Java应用程序。我正在使用JDK8:⋊>~java-versionjavaversion"1.8.0_102"Java(TM)SERuntimeEnvironment(build1.8.0_102-b14)JavaHotSpot(TM)64-BitServerVM(build25.102-b14,mixedmode)⋊>~echo$JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home我的最终目标是跟踪特定包的所有Java方法入

java - 如何简化 token 预测 DFA?

词法分析器DFA导致“代码太大”错误我正在尝试使用ANTLR3解析Java服务器页面。Java对单个方法的字节码有64k的限制,我在编译ANTLR生成的Java源代码时一直遇到“codetoolarge”的错误。在某些情况下,我已经能够通过破坏我的词法分析器来修复它。例如,JSP使用XML“名称”标记,它可以包含多种字符。我决定在我的“名称”token中只接受ASCII字符,这极大地简化了一些测试,词法分析器允许它编译。然而,我已经到了无法再偷工减料的地步,但DFA仍然太复杂。我该怎么办?是否存在导致复杂DFA的常见错误?有没有办法抑制DFA的生成,也许是依靠语义谓词或固定前瞻来帮助预

java - 远程分析 Java 应用程序

我想问一下如何远程分析Java应用程序。为了进行调试,我可以说出JVM必须监听哪个端口等,因为我尝试访问的机器位于ssh网关后面,所以我手动创建了一个SSH隧道,但我一直在谷歌搜索同样的事情,但是在分析时我不能'好像找不到。基本上我正在寻找这个命令的等价物:java-agentlib:jdwp=transport=dt_socket,server=y,address=8000-jar/bla/bla但为了分析,以便我可以远程附加分析器。 最佳答案 免责声明:我公司开发JProfiler与JProfiler,VM参数是这样的:-age

持续集成中的 Java 分析

有没有像Jenkins这样与CI服务器集成的Java分析工具?我不知道这样的事情是否存在,但如果有某种测试框架能够产生像YourKitProfiler的快照这样的结果,那就太棒了。这些将由CI服务器调用,并将结果与​​构建一起存储。结果是人们可以看到代码单元的性能变化历史,以帮助在系统集成级别进行更全面的性能调查。 最佳答案 看看spf4j,我将它用于连续分析(分析始终打开)。它使用采样进行分析,可以将分析数据保存到ssdump文件,也可以生成html报告。(Spf4j有一个UI来可视化ssdump配置文件)