草庐IT

采集器

全部标签

ruby-on-rails - Ruby 1.9 垃圾收集器,GC.disable/enable

我正在开发一个Rails2.3、Ruby1.9.1网络应用程序,它在每个请求之前执行大量计算。对于每个请求,它都必须计算一个包含300个节点和约1000条边的图。该图及其所有节点、边和其他对象针对每个请求(~2000个对象)进行初始化-实际上,它们是使用Marshal.load(Marshal.dump())从未计算的缓存图中克隆的。性能在这里是一个很大的问题。现在整个请求平均需要150毫秒。然后我看到在请求期间,部分计算随机花费更长的时间。假设这可能是GarbageCollector启动,我将请求包装在GC.disable和GC.enable中,以便请求等待垃圾收集,直到计算和渲染完

ruby - Ruby 2.2 中的垃圾收集器引发意想不到的 CoW

当我fork我的进程时,如何防止GC引发写时复制?由于我在我的程序中遇到了一些内存问题(我的60核0.5Tb机器上的内存不足,即使是相当小的任务),我最近一直在分析Ruby中垃圾收集器的行为。对我来说,这确实限制了ruby​​在多核服务器上运行程序的实用性。我想在这里展示我的实验和结果。当垃圾收集器在fork期间运行时会出现此问题。我调查了三个案例来说明这个问题。案例一:我们使用数组在内存中分配了很多对象(不超过20字节的字符串)。字符串是使用随机数和字符串格式创建的。当进程fork并且我们强制GC在子进程中运行时,所有共享内存都变为私有(private),导致初始内存重复。案例2:我

ruby - Ruby 1.9 中的垃圾收集器调整

我知道GC.enable/disable,但是有什么方法可以更详细地控制Ruby1.9垃圾收集器吗?在分析我的代码时(使用perftools.rb),我注意到GC占样本总数的30%,我想看看是否可以调整GC以减少这个数字。是否有任何环境变量或其他方法可以像使用REE一样设置堆槽的数量、malloc限制等? 最佳答案 是的,简而言之。首先,基本常量,定义GC行为(显示默认值):RUBY_GC_MALLOC_LIMIT=8000000#-新内存板的初始大小,在消耗完所有可用内存后分配RUBY_HEAP_MIN_SLOTS=10000#-

ruby - Ruby 2.0 中的垃圾收集器调整

我想知道用于ruby​​1.9.x的GC调优在2.0中是否仍然与GC的新实现相关。如果是这样,我们可以在新版本上配置什么新东西吗?我说的是以下设置RUBY_HEAP_MIN_SLOTS=600000RUBY_GC_MALLOC_LIMIT=59000000RUBY_HEAP_FREE_MIN=100000 最佳答案 这些GC调优参数有些困惑。REE(它是Ruby1.8.7的一个分支)introduceditsownparametersfirst,后来Ruby(从1.9.2开始)引入了它自己的(类似的)参数。Ruby1.9.3使它们可

FileBeat-日志收集器

浅聊FileBeat        在使用一个工具或者说一套组合工具之前要先对它和它的同类工具进行了解选出一个最适合自己的项目的工具然后进行使用,而我使用的就是filebeat什么是FileBeat        Filebeat是一个开源的文本日志收集器,它是elastic公司Beats数据采集产品的一个子产品,采用go语言开发,一般安装在业务服务器上作为代理来监测日志目录或特定的日志文件,并把它们发送到logstash、elasticsearch、redis或Kafka等。可以在官方地址为什么使用FileBeat        日志收集的工具有很多,比如logstash,虽然logstas

javascript - 在 JavaScript 上添加/删除监听器(垃圾收集器)

我有一个关于添加/删除DOM对象监听器的快速问题。我想问一下垃圾收集器是否能够在从页面中删除元素时收集内存。示例:带有几个child列表的标签()varul=document.getElementById('someParent');varchildren=ul.children;varsomeFunction=function(){};for(vari=0;i 最佳答案 ul.remove();行将从DOM中删除ul元素及其所有子元素。但是只要您引用了这些监听器、li元素和ul元素,事件监听器的内存就不会被释放。您在变量child

javascript - 网络 worker 有自己的垃圾收集器吗?

我有一些处理过程不一定是CPU密集型的,但是会创建很多临时对象,这会导致垃圾收集器在动画期间出现令人不快的问题等。将临时对象创建过程卸载给网络worker是否有助于缓解这种情况?换句话说-GC问题会被隔离到Web工作线程而不影响我的主线程,还是GC会影响两个线程? 最佳答案 ECMAScript规范没有规定任何形式的内存管理,垃圾回收仅在非规范部分提及。类似地,webworker规范除了wrt之外并没有太多关于垃圾收集的内容。某些对象必须存活多长时间。所以这是特定于实现的行为。即使实现实现了每个工作人员的GC并在一般情况下避免了共享

电池供电遥测终端RTU 遥测终端机 低功耗遥测采集终端 智能远传 防水IP68

平升电子电池供电遥测终端RTU/遥测终端机/低功耗遥测采集终端是基于4G、5G、NB-IoT网络实现数据采集、远程传输、分析计算、越限报警的智能设备,具有功耗低、IP68防水等特点。特别适合用在无供电条件、防水防尘要求高的监测现场。随着通信网络更迭、产品持续改进,平升电子电池供电遥测终端RTU自2007年问世至今,已经拥有了4款系列产品,可应用于多种场合:管网监测、地下水监测、无线远程抄表、水资源取用水计量监测、油田长停井监测等。功能特点  ★ 远程监测仪表/传感器数据  ★ 4G/5G/NB-IoT无线远传  ★ 数据越限、设备异常自动报警,及时发现事故隐患  ★ IP68级防护——防水防潮

javascript - 纬度、经度采集器

我想做的是创建一个应用程序,当任何人点击map对象时,每次点击时两个字段都会填充纬度和经度。是否有执行类似操作的GoogleMapsV3JavaScriptAPI(地理编码API)示例代码? 最佳答案 您可以使用google.maps.event'实现此目的经纬度属性:像这样的东西会展示它是如何工作的。这是一个JSFiddleDemo:google.maps.event.addListener(map,'click',function(event){alert('Lat:'+event.latLng.lat()+'Lng:'+eve

javascript - Node.js 的垃圾收集器

我从这个线程中学到了garbagecollectionwithnode.jsnode.js使用分代GC。我经常使用循环对象引用(我删除/确保最终超出范围)并且想知道node.js是否能很好地处理它们。所以例如。如果它是使用ref完成的。计数,会有问题,所以我想知道Node在这方面有多好。一些使用场景:对于每个http请求,我都创建了一个带有lambda的setTimeout,它可能引用了范围对象。scope对象也有对timeout对象的引用等...对于每个用户session,我都有一个指向http请求对象的指针(仍在进行C编程)引用,它也引用了session对象等...请求对象经常被删