Tag: pipe

操作3000万字符的string

我正在从另一台服务器上下载一个CSV文件作为供应商提供的数据。 我正在使用curl来获取文件的内容并将其保存到一个名为$contents的variables中。 我可以到那个部分就好了,但是我试着用\r和\n来爆炸得到一行数组,但是失败时出现了'内存不足'的错误。 我echo strlen($contents) ,这是约3050万字。 我需要操纵这些值并将它们插入到数据库中。 我需要做什么来避免内存分配错误?

WCF命名pipe道最小的例子

我正在寻找WCF命名pipe道的最小例子(我期待两个最小的应用程序,服务器和客户端,它们可以通过命名pipe道进行通信)。 微软有一个灿烂的文章入门教程 ,通过HTTP描述WCF,我正在寻找类似的WCF和命名pipe道。 我在互联网上发现了几个post,但他们有点“高级”。 我需要一些最小的,只有强制性的function,所以我可以添加我的代码,并获得应用程序工作。 我如何replace使用命名pipe道? <endpoint address="http://localhost:8000/ServiceModelSamples/Service/CalculatorService" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator" contract="ICalculator" name="WSHttpBinding_ICalculator"> <identity> <userPrincipalName value="OlegPc\Oleg" /> </identity> </endpoint> 我如何replace使用命名pipe道? // Step 1 of the address configuration procedure: Create a URI to serve as the base address. Uri baseAddress = new Uri("http://localhost:8000/ServiceModelSamples/Service"); // Step 2 of the hosting procedure: Create ServiceHost ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), […]

操作员将内存初始化为零

有这样的代码: #include <iostream> int main(){ unsigned int* wsk2 = new unsigned int(5); std::cout << "wsk2: " << wsk2 << " " << *wsk2 << std::endl; delete wsk2; wsk2 = new unsigned int; std::cout << "wsk2: " << wsk2 << " " << *wsk2 << std::endl; return 0; } 结果: wsk2: 0x928e008 5 wsk2: 0x928e008 0 […]

将非托pipedllembedded托pipe的C#dll

我有一个托pipe的C#DLL,它使用了一个使用DLLImport的非托pipeC ++ DLL。 一切都很好。 不过,我想embedded我托pipe的DLL内的非托pipeDLL作为微软解释说: http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.dllimportattribute.aspx 所以我将非托pipedll文件添加到我的托pipedll项目中,将该属性设置为“Embedded Resource”并将DLLImport修改为如下所示: [DllImport("Unmanaged Driver.dll, Wrapper Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", CallingConvention = CallingConvention.Winapi)] 其中“包装引擎”是我的托pipeDLL的程序集名称“非托pipe的Driver.dll”是非托pipe的DLL 当我跑步时,我得到: 访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED)) 我从MSDN和http://blogs.msdn.com/suzcook/看到这应该是可能的…

Haskell数据types的内存占用

我如何find在Haskell中存储一些数据types的值所需的实际内存量(主要是GHC)? 是否有可能在运行时(例如在GHCi中)对其进行评估,还是有可能从组件中估计组合数据types的内存需求? 通常,如果typesa和b内存需求是已知的,那么代数数据types的内存开销是多less,例如: data Uno = Uno a data Due = Due ab 例如,这些值占用内存中有多less个字节? 1 :: Int8 1 :: Integer 2^100 :: Integer \x -> x + 1 (1 :: Int8, 2 :: Int8) [1] :: [Int8] Just (1 :: Int8) Nothing 我知道实际的内存分配比较高,因为垃圾回收的延迟。 由于懒惰评估可能会有很大的不同(并且thunk的大小与值的大小无关)。 问题是,在给定数据types的情况下,在完全评估时它的值需要多less内存? 我发现GHCi中有一个:set +s选项来查看内存统计信息,但不清楚如何估计单个值的内存占用情况。

LAMP:如何为用户快速创build.zip大文件,无需磁盘/ CPU抖动

Web服务通常需要压缩几个大文件供客户端下载。 最明显的方法是创build一个临时的zip文件,然后或者将其echo给用户,或者将其保存到磁盘并redirect(将来有一段时间将其删除)。 但是,这样做有缺点: 密集的CPU和磁盘颠簸的初始阶段,导致… 在档案准备的同时,对用户的相当大的初始延迟 每个请求的内存占用量非常高 使用大量的临时磁盘空间 如果用户取消下载的一半,初始阶段(CPU,内存,磁盘)使用的所有资源将被浪费 像ZipStream-PHP这样的解决scheme通过将数据按文件铲入Apache文件来改善这一点。 但是,结果仍然是高内存使用率(文件全部加载到内存中),而且磁盘和CPU使用率也很高。 相比之下,请考虑下面的bash代码片段: ls -1 | zip -@ – | cat > file.zip # Note -@ is not supported on MacOS 在这里, zip以stream模式运行,导致内存占用less。 一个pipe道有一个整体的缓冲区 – 当缓冲区满时,操作系统暂停写入程序(pipe道左侧的程序)。 这里确保zip运行速度与cat输出速度一样快。 那么最好的方法就是做同样的事情:用web服务器进程replacecat ,将zip文件stream式传输给用户。 与仅传输文件相比,这会产生很小的开销,并且会有一个没有问题的,非尖锐的资源configuration文件。 你怎么能在LAMP栈上实现这个function?

iPhone操作系统内存警告。 不同级别的含义是什么?

关于在iPhone OS设备上pipe理内存的黑色艺术:不同级别的内存警告意味着什么。 1级? 2级? 表盘是否转到11? 背景:经过大量的记忆力testing阶段 – 包括运行我的iPad应用程序与iPod音乐播放器应用程序播放,我倾向于忽略随机而不经常的记忆警告我收到。 我的应用程序从不崩溃。 永远。 我的应用程序是无泄漏的。 而且,好吧,这些警告似乎并不重要。 谢谢, 道格

用块保留“自我”的循环

恐怕这个问题是非常基本的,但我认为这与很多进入块的Objective-C程序员有关。 我所听到的是,因为块捕获的局部variables被作为const拷贝引用,所以如果块被复制,在块中使用self可能会导致保留周期。 所以,我们应该使用__block来强制块直接处理self而不是复制它。 __block typeof(self) bself = self; [someObject messageWithBlock:^{ [bself doSomething]; }]; 而不是仅仅 [someObject messageWithBlock:^{ [self doSomething]; }]; 我想知道的是:如果这是真的,有没有一种方法可以避免丑(除了使用GC)?

Python何时为相同的string分配新的内存?

两个具有相同字符的Pythonstringa == b可以共享内存id(a)== id(b),或者可以在内存中两次,id(a)!= id(b)。 尝试 ab = "ab" print id( ab ), id( "a"+"b" ) 这里Python认识到新创build的“a”+“b”与已经在内存中的“ab”相同 – 不错。 现在考虑一个N长的州名(“亚利桑那州”,“阿拉斯加州”,“阿拉斯加州”,“加利福尼亚州”)(在我的情况下是N〜500000)。 我看到50个不同的id()s⇒每个string“Arizona”…只存储一次,很好。 但是将列表写入磁盘并再次读回:“相同”列performance在具有N个不同的id(),方式更多的内存,见下文。 怎么会 – 任何人都可以解释Python的string内存分配? """ when does Python allocate new memory for identical strings ? ab = "ab" print id( ab ), id( "a"+"b" ) # same ! list of N names from 50 […]

如何设置JVM的最大内存使用量?

我想限制JVM使用的最大内存。 请注意,这不仅仅是堆,我想限制这个过程使用的总内存。