草庐IT

performing

全部标签

performance - 如何分析golang的内存?

我写了一个golang程序,它在运行时使用1.2GB内存。调用gotoolpprofhttp://10.10.58.118:8601/debug/pprof/heap会导致仅使用323.4MB堆的转储。剩余的内存使用情况如何?有没有更好的工具来解释golang运行时内存?使用gcvis我明白了:..和这个堆表单配置文件:这是我的代码:https://github.com/sharewind/push-server/blob/v3/broker 最佳答案 堆配置文件显示事件内存,即运行时认为go程序正在使用的内存(即:尚未被垃圾收集器

Java 8 : performance of Streams vs Collections

我是Java8的新手。我仍然不深入了解API,但我做了一个小型的非正式基准测试来比较新StreamsAPI与良好的旧Collections的性能。测试包括过滤Integer的列表,并为每个偶数计算平方根并将其存储在DoubleList中。代码如下:publicstaticvoidmain(String[]args){//Calculatingsquarerootofevennumbersfrom1toNintmin=1;intmax=1000000;ListsourceList=newArrayList();for(inti=min;iresult=newLinkedList();//

performance - MongoDB 在聚合查询上的表现

在听到很多关于MongoDB性能的好消息后,我们决定尝试使用Mongodb来解决我们遇到的问题。我首先将我们在几个mysql数据库中的所有记录移动到mongodb中的单个集合中。这产生了一个包含2900万个文档(每个文档至少有20个字段)的集合,在HD中占用了大约100GB的空间。我们决定将它们全部放在一个集合中,因为所有文档都具有相同的结构,并且我们希望查询和聚合所有这些文档的结果。我创建了一些索引来匹配我的查询,否则即使是简单的count()也需要很长时间。但是,诸如distinct()和group()之类的查询仍然需要很长时间。例子://creationofacompoundin

performance - Mongodb聚合框架比map/reduce更快吗?

mongodb2.2引入的聚合框架,相比map/reduce有什么特别的性能提升吗?如果是,为什么以及如何以及多少钱?(我自己已经做过测试,性能差不多) 最佳答案 我亲自运行的每个测试(包括使用您自己的数据)都表明聚合框架比mapreduce快几倍,并且通常快一个数量级。只取您发布的数据的1/10(但不是清除操作系统缓存,而是先预热缓存-因为我想测量聚合的性能,而不是需要多长时间来分页数据)我得到了这个:MapReduce:1,058毫秒聚合框架:133ms从聚合框架中删除$match和从mapReduce中删除{query:}(因

performance - MongoDB 'count()' 非常慢。我们如何改进/解决它?

我目前正在使用具有数百万条数据记录的MongoDB。我发现了一件很烦人的事情。当我使用'count()'函数来收集少量的查询数据时,它非常快。但是,当查询的数据集合包含上千甚至上百万条数据记录时,整个系统就会变得很慢。我确保我已为必填字段编制索引。有人遇到过同样的事情吗?您如何改善这一点? 最佳答案 除了创建正确的索引之外,现在还有另一种优化。db.users.ensureIndex({name:1});db.users.find({name:"Andrei"}).count();如果您需要一些计数器,我建议尽可能预先计算它们。通过

ruby - perform_async 在 sidekiq 中不起作用

我正在尝试使用sidekiq在后台处理一些请求(它与padrino框架集成)。我的期望是,一旦调用了worker,请求处理程序会立即将答案返回给用户。为了确保它正常工作,我实现了一个worker,它会在完成处理之前打印一些消息并休眠大约44秒(以模拟后台的长时间处理)。令我惊讶的是,请求一直卡在工作人员完成工作之前。只有在那之后,请求处理程序才能向用户返回答案。起初我认为sleep函数可能是问题所在,所以我将sleep函数替换为忙碌的一段时间,但我有相同的行为:请求处理程序挂起,直到工作人员完成其任务。知道为什么会这样吗?您可以看到以下内容:请求处理程序:get:hardworker,

ruby-on-rails - 从 perform 中重新安排 sidekiq 作业

有没有办法在Sidekiqworker中检查perform中的条件,并在不同的时间重新安排作业(并停止执行作业)?defperformifis_it_summer_yet?Bear.wake_em_upelse#rescheduletoperforminafewhoursendend这是一个简单的例子,但在我的用例中有很多针对该条件的计算和网络调用,所以我无法在外部完成 最佳答案 defperformifis_it_summer_yet?Bear.wake_em_upelseself.class.perform_in(1.hour)

ruby - 使用 RSpec 3 测试 sidekiq perform_in

RSpec3和sidekiq3.2.1。我已经正确设置了sidekiq和rspec-sidekiq。假设我有一个名为WeatherJob的worker,它将天气状态从sunny更改为rainy:classWeatherJobincludeSidekiq::Workerdefperformrecord_idweather=Weather.findrecord_idweather.updatestatus:'rainy'endend我这样使用这个worker:WeatherJob.perform_in15.minutes,weather.id。在规范中,我使用Timecop来模拟时间:re

ruby-on-rails - sidekiq 中的 perform_in 和 perform_async 有什么区别?

我想用新的时间间隔更新旧的sidekiq作业。我该怎么做?是否可以通过perform_in选项。此外,我想知道perform_in和perform_async之间的明显区别。 最佳答案 您必须通过perform_in一次。perform_async立即被推送到队列中。除此之外,它们是相同的。你会调用perform_in(10.minutes) 关于ruby-on-rails-sidekiq中的perform_in和perform_async有什么区别?,我们在StackOverflow上

Golang : make slice performance

为什么这些基准测试结果如此不同?funcBenchmark1(b*testing.B){forn:=0;n基准测试结果:Benchmark1-85000000003.37ns/opBenchmark2-83000000050.6ns/op 最佳答案 常量表达式8在编译时被计算。make分配在goroutine堆栈上(便宜)。变量表达式7+length在运行时计算。make分配在程序堆上(昂贵)。如果make大小对于堆栈分配来说太大(例如,常量(64*1024)和变量(64*1024-1)+length)那么两个分配都是在堆上进行的,