Tag: pipe

内存分配“错误:不能分配75.1 Mb大小的向量”

在向量化一些模拟代码的过程中,我遇到了一个内存问题。 我在Windows XP下使用32位R版本2.15.0(通过RStudio版本0.96.122)。 我的机器有3.46 GB的RAM。 > sessionInfo() R version 2.15.0 (2012-03-30) Platform: i386-pc-mingw32/i386 (32-bit) locale: [1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] Matrix_1.0-6 lattice_0.20-6 MASS_7.3-18 loaded via a namespace (and not attached): [1] grid_2.15.0 tools_2.15.0 […]

Java中的循环引用

给定一个以复杂的,循环的方式相互引用的类实例的聚合:垃圾收集器可能无法释放这些对象吗? 我隐约记得过去这是JVM中的一个问题,但是我认为这在多年前就已经解决了。 然而,一些调查显示,我现在正面临一个循环引用,就是造成内存泄露的原因。 注:我一直觉得JVM有能力解决循环引用,从内存中释放这些“垃圾岛”。 不过,我只是提出这个问题,看是否有人发现任何例外。

在任何情况下,新的返回NULL?

我知道,根据C ++标准,如果新分配内存失败,它应该抛出std :: bad_allocexception。 但是我听说有些编译器如VC6(或CRT的实现?)不遵守它。 这是真的 ? 我这样问,因为在每个新的语句之后检查NULL会使代码看起来非常难看。

如何正确地replace全局新增和删除操作符

首先,在SO上至less有4-5个话题有类似的话题。 我读了他们每个人,我不觉得他们真的帮助我解决这个具体问题。 如果有人发现重复的问题,我表示歉意。 在发布之前,我已经完成了我的search工作,因为这似乎是一个很常见的问题。 我在Windows 7上使用Visual Studio .NET 2003。 我有我自己的重载新/删除指向我自己的自定义调用malloc()和free()进行诊断。 我的新/删除重载是在一个头文件,我已经包含在几个文件。 问题是,代码基础是非常意大利面条,并没有简单的方法来确保这些重载被一切使用。 第三方库包含黑箱。 我们也到处使用STL。 在我的testing中,我发现STL仍然将呼叫混合到我自己的新/删除和标准的MSVC新/删除呼叫中。 将我的头文件包含在成千上万的其他文件中似乎并不现实,这只需要很长时间。 任何人都可以提供一些关于如何适当和有效地重载全局新/

是否有必要在Swift程序中使用autoreleasepool?

该WWDC14演示文稿的第17页上说 使用Objective-C? 还必须pipe理自动释放池 autoreleasepool {/ * code * /} 这意味着什么? 这是否意味着如果我的代码库没有任何Objective-C文件, autoreleasepool {}是不必要的? 在相关问题的答案中 ,有一个autoreleasepool可以用的例子: – (void)useALoadOfNumbers { for (int j = 0; j < 10000; ++j) { @autoreleasepool { for (int i = 0; i < 10000; ++i) { NSNumber *number = [NSNumber numberWithInt:(i+j)]; NSLog(@"number = %p", number); } } } } 如果上面的代码在autoreleasepool删除的情况下被转换成Swift,Swift是否足够聪明以知道numbervariables应该在第一个之后被释放(就像其他一些语言一样)?

如何获得可用内存C ++ / g ++?

我想根据可用的内存分配我的缓冲区。 这样,当我做处理和内存使用量上升,但仍然在可用内存的限制。 有没有办法获得可用的内存(我不知道虚拟或物理内存状态会有什么区别?)。 方法必须是平台无关的,因为它将在Windows,OS X,Linux和AIX上使用。 (如果可能的话,我也想为我的应用程序分配一些可用的内存,在执行期间它不会改变的人)。 编辑:我做了可configuration的内存分配。 我知道这不是一个好主意,因为大多数操作系统都为我们pipe理内存,但是我的应用程序是一个ETL框架(打算在服务器上使用,但也被用在桌面上作为Adobe indesign的插件)。 所以,我遇到了问题,因为不使用交换,Windows将返回错误的分配和其他应用程序开始失败。 正如我被教导要避免碰撞,所以,只是试图优雅地退化。

MATLAB的垃圾收集器?

你的心智模式是什么? 它是如何实现的? 它有哪些优点和缺点? MATLAB GC与Python GC ? 我有时会看到奇怪的性能瓶颈时使用MATLAB嵌套function,否则无害的代码,我相信这是因为GC。 垃圾收集器是虚拟机的一个重要组成部分,Mathworks并不公开。 我的问题是关于MATLAB自己的堆和GC! 不是关于处理Java / COM对象/防止“内存不足”错误/分配堆栈variables。 编辑:第一个回答实际上是元回答“我为什么要在意?”。 我很在乎,因为GC在实现链表或MVC模式时显现出来。

为什么Rails4在Gemfile中放弃对“资产”组的支持

在Rails 3中,专门用于在资产pipe道中生成资产的gem已正确放置在Gemfile的assets组中: … # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails' gem 'coffee-rails' gem 'uglifier' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby end 现在,根据(仍在进行中) 升级文档 : Rails 4.0从Gemfile中删除资产组。 升级时,您需要从Gemfile中删除该行。 果然,使用RC1创build一个新项目会产生一个Gemfile,其中包含与任何组之外的默认资产相关的gem文件: source 'https://rubygems.org' # Bundle edge Rails instead: […]

如何正确做私钥pipe理

是否有人获得实践经验或参考实施符合PCI DSS安全标准的密钥pipe理scheme? 考虑到符合PCI DSS的公司数量,显然有相当多的实施,但试图find它们的细节是艰难的。 当它下降到存储私人数据时,讨论通常停止在使用哪种encryptionalgorithm。 之后,通常会有一个关于正确存储私钥的声明,但是没有讨论实际的方法来做这件事,或者像定期更换密钥或者提供应用程序的密钥之类的东西。 具体而言,我对PCI DSS标准第3.5节和第3.6节的要求感兴趣。 3.5.2将密钥安全地保存在尽可能less的位置和表格中。 3.6.avalidation用于encryption持卡人数据的密钥是否存在密钥pipe理程序。 注:关键pipe理的许多行业标准可以从各种资源中获得,包括NIST,可以在http://csrc.nist.govfind。 3.6.4validation密钥pipe理程序是否至less每年要求定期更换密钥。 根据PCI DSS要求文件的build议,我已经看了NISTencryption出版物 ,但除了最近的encryption密钥pipe理研讨会logging之外 ,似乎没有太多的真正可实施的scheme或标准。 至于我想做的事情不是: 存储密码+盐作为authentication的一种方式, select一个强大的数据encryptionsymmtericalgorithm, 避免首先存储私人数据。 避免使用其他机制进行密钥pipe理:物理安全,数据库安全,龙和向导等。 所有这些都是有效的担忧,但在这种情况下不是答案。 我的要求的坚果和螺丝是在一个不同的SO问题。networkingdevise模式存储和检索敏感的每个用户的数据,但这一切都归结为密钥pipe理,因此这个更精致的问题。

是string文字池汇集对string对象或对象集合的引用

SCJP Tip Line的作者Corey McGlone写了一篇关于javaranch网站的文章,我感到很困惑。 命名为Strings, Kathy Sierra (co-founder of javaranch) and Bert Bates由Kathy Sierra (co-founder of javaranch) and Bert Bates编写的SCJP Java 6程序员指南。 我会试着引用科里先生和凯西·谢拉女士所引用的关于弦乐文字池的内容。 1.按照科里·麦克隆先生的说法: string文字池是指向string对象的引用的集合。 String s = "Hello"; (假设堆上没有名为“Hello”的对象),将在堆上创build一个String对象"Hello" ,并将该对象的引用放置在String Literal Pool(常量表) String a = new String("Bye"); (假设堆上没有名为“Bye”的对象, new运算符将使JVM在堆上创build一个对象。 现在对于创build一个String的"new"运算符的解释和它的引用在本文中有点混乱,所以我把这个文章本身的代码和解释放在下面。 public class ImmutableStrings { public static void main(String[] args) { String one = "someString"; […]