草庐IT

CPU时间

全部标签

java - 遍历数组列表的时间复杂度

我有一个循环访问的数组列表。在每次迭代中,我调用get()来获取一个元素,如果该项目满足某个条件,则使用add()将其添加到新的数组列表中>Listitems=newArrayList();ListlessItems=newArrayList();for(intindex=0;index我不确定这里的时间复杂度是多少。我在所有项目上调用get(),所以这是O(n)。然后我还可能对所有项目调用add(),所以还有另一个O(n)。不太确定这一点。 最佳答案 迭代items列表的第一个循环:复杂度为O(n)将每个项目插入到列表的末尾les

java - 解析 AMAZON.DURATION 插槽类型的 ISO-8601 持续时间值

java.time库是否提供了一种统一的方式来解析整个ISO-8601DurationSpecification?AlexaSlotTypereferenceforduration列出了使用AMAZON.DURATION插槽类型时预期的一些示例字符串。所有字符串都在ISO-8601Duration中,但是P2YT3H10不能被java.time.Period或java.time.Duration解析。Seq("PT10M","PT5H","P3D","PT45S","P8W","P7Y","PT5H10M","P2YT3H10").map{s=>s->Try{try{Period.pa

java - Java PriorityQueue(堆)插入n个元素的时间复杂度?

这个问题在这里已经有了答案:HowcanbuildingaheapbeO(n)timecomplexity?(18个答案)关闭5年前。我想知道JavaPriorityQueue.Add()对n元素的时间复杂度是多少。我知道插入单个元素的潜在更坏情况是O(log(n)),但我不清楚插入n集合的时间复杂度是多少元素?我从各种来源(没有证据)中看到,构建一个n元素的优先级队列堆的时间是O(n),并且还看到声称它是O(nlog(n)),这是有意义的,因为插入是O(log(n)),它乘以n时间确实等于O(nlog(n))注意:我只对最坏的情况感兴趣,而不是摊销。这个问题假设有一种逻辑方法来描述用

java - 在单元测试中操纵当前时间?

有没有办法在jUnit4.5测试中操纵当前时间?我有以下方法,我想对其进行单元测试publicStringgetLastWeek(){GregorianCalendarc=newGregorianCalendar(TimeZone.getTimeZone("Europe/Stockholm"));c.setFirstDayOfWeek(GregorianCalendar.MONDAY);c.add(GregorianCalendar.WEEK_OF_YEAR,-1);returnc.get(GregorianCalendar.YEAR)+""+c.get(GregorianCalend

java - 为什么我的 Java 时间比较失败?

我有以下方法将字符串转换为毫秒粒度的日期publicDateconvertTime(Stringtime){SimpleDateFormatparser=newSimpleDateFormat("HH:mm:ss.S");try{returnparser.parse(time);}catch(Exceptionex){ex.printStackTrace();returnnull;}}Dated1=lib.convertTime("10:30:53.39");Dated2=lib.convertTime("10:30:53.40");System.out.println(d1.afte

java - 获取创建文件的日期/时间

这似乎是一个非常简单的问题,但我一直无法在网上的任何地方找到明确的答案。如何通过Java的文件管理器获取文件创建的日期/时间?关于文件的“属性”,除了文件名之外,我还能得到什么? 最佳答案 我不确定您如何使用Java6及更低版本获得它。使用Java7的新文件系统API,它看起来像这样:Pathpath=...//thepathtothefileBasicFileAttributesattributes=Files.readAttributes(path,BasicFileAttributes.class);FileTimecreat

java - 用于 cpu 分析的过滤类在 Java VisualVM 中是否有效?

我想过滤JavaVisualVm(版本1.7.0b110325)中哪些类正在被cpu分析。为此,我尝试在Profiler->Settings->CPU-Settings下为我的测试包设置“Profileonlyclasses”,但没有效果。然后我试图通过将它们设置为“不分析类”来摆脱所有java.*和sun.*类,这也没有任何效果。这只是一个错误吗?或者我错过了什么?有解决方法吗?我的意思是除了:为更好的分析器买单手工取样(参见Onecoulduseaprofiler,butwhynotjusthalttheprogram?)切换到CallTreeView,这不太好,因为只有Profi

java - 使用 Thread.sleep 线程 hibernate 时的 CPU 消耗

我有一个服务器程序可以轮询数据库以获取新请求,我希望每隔1分钟进行一次轮询,所以我在程序中设置了一个Thread.sleep()while循环。问题是每当这个程序应该“hibernate”时,CPU消耗就会急剧上升(即大约25-30%)。矛盾的是,当程序不处于hibernate状态,忙于处理请求时,CPU消耗下降到0.4%。我在网上阅读并发现与thread.sleep相关的性能下降,但我找不到任何可行的替代方案(Thread.wait需要通知对象,我觉得这在我的场景中是无用的)主循环(当没有新请求时)不做任何事情,这是当CPU消耗为25%时正在做的所有事情的框架->投票->没有新记录?

java - 为什么 Java CPU 配置文件(使用 visualvm)在一个什么都不做的方法上显示如此多的命中?

这是我以前在其他环境中使用其他分析工具时见过的情况,但在这种情况下尤其引人注目。我正在获取一个运行了大约12分钟的任务的CPU配置文件,它显示几乎一半的时间花费在一个实际上什么都不做的方法上:它有一个空体。什么会导致这个?我不认为该方法被调用的次数多得离谱,当然不会占执行时间的一半。就其值(value)而言,所讨论的方法称为startContent(),它用于通知解析事件。事件沿着过滤器链(可能有十几个)传递,每个过滤器上的startContent()方法除了调用链中下一个过滤器上的startContent()之外几乎什么都不做。这是纯Java代码,我在Mac上运行它。附件是CPU采样

java - 为什么我的 for 循环执行时间没有改变?

publicclassTest{publicstaticvoidmain(String[]args){intx=150_000;longstart=System.currentTimeMillis();for(inti=0;i有人可以解释为什么将x设置为150_000或4_000_000甚至2_000_000_000不会改变此循环的执行时间吗? 最佳答案 在执行期间,JVM的即时(JIT)编译器将java字节码(类格式)编译为您机器的native指令集。JIT在编译期间执行多项优化。在这种情况下,JIT可能意识到以下内容(只是猜测)