Tag: pipe

为什么没有更多的Java代码使用PipedInputStream / PipedOutputStream?

最近我已经“发现”了这个成语,而且我想知道是否有什么东西丢失了。 我从来没有见过它使用。 几乎所有与“野外”合作的Java代码都倾向于将数据浸入string或缓冲区,而不是像本示例中那样(使用HttpClient和XML API): final LSOutput output; // XML stuff initialized elsewhere final LSSerializer serializer; final Document doc; // … PostMethod post; // HttpClient post request final PipedOutputStream source = new PipedOutputStream(); PipedInputStream sink = new PipedInputStream(source); // … executor.execute(new Runnable() { public void run() { output.setByteStream(source); serializer.write(doc, output); try { source.close(); } catch (IOException […]

如何在markdown表中的代码语句中转义pipe道字符?

在GitHub上,我想在Markdown中构build一个包含代码段的表。 它工作正常,除了当我在反引号(即“字符)之间放置一个pipe道字符(ie |)。 这是我想要的: a | r ————|—– `a += x;` | r1 `a |= y;` | r2 问题是第二行的代码语句中的垂直条被解释为列分隔符。 然后表格渲染看起来很丑。 我怎么能避免呢? 请注意,我已经尝试使用| HTML代码,但会产生a |= y; 。

使用Bower更新多个依赖项

我在bower.json文件中和/或中列出(和/或安装了)Bower的一些依赖项 bower install https://github.com/username/project.git 这工作得很好。 现在我可以列出所有的 bower list 然后我可以select我的项目的每个依赖项的名称并运行 bower update dependency-name 问:如何批量更新所有这些? 或者我必须编写一个shell脚本来循环和更新它们?

如何获得Drupal页面的完整URL?

我需要在Drupal站点中抓取当前页面的URL。 不pipe它是什么内容types都可以 – 可以是任何types的节点。 我不在寻找主题,或基地的url,或Drupal的get_destination的path。 我正在寻找一个函数或variables,会给我以下的全部: http://example.com/node/number 无论有或没有(更可能) http:// 。

在C ++中返回对象

当从一个类中返回对象时,什么时候释放内存? 例, class AnimalLister { public: Animal* getNewAnimal() { Animal* animal1 = new Animal(); return animal1; } } 如果我创build动物列表的一个实例,并从它得到动物的参考,那么我应该删除它呢? int main() { AnimalLister al; Animal *a1, *a2; a1 = al.getNewAnimal(); a2 = al.getNewAnimal(); } 这里的问题是AnimalLister没有办法跟踪创build的动物列表,所以我如何改变这种代码的逻辑来删除创build的对象。

如何在Haskell中获得5GB堆的控制权?

目前我正在试验用Snap编写的一个Haskellnetworking服务器,它加载并提供给客户大量的数据。 而且我非常非常难以控制服务器进程。 在随机的时刻,这个过程使用了大量的CPU几分钟到几分钟,并且对客户端请求没有反应。 有时内存使用会在几秒钟内高峰(有时会下降)数百兆字节。 希望有人对长时间运行的Haskell进程有更多的经验,这些进程使用大量的内存,并且可以给我一些指针来使事情更稳定。 我已经debugging了好几天了,现在我开始有点绝望了。 我的设置一点点概述: 在服务器启动时,我将大约5千兆字节的数据读入内存中的大(嵌套)Data.Map-like结构。 嵌套地图的值是严格的,地图中的所有值都是数据types,所有的字段也都是严格的。 我花了很多时间确保没有未经评估的thunk被留下。 导入(取决于我的系统负载)大约需要5-30分钟。 奇怪的是连续运行的波动比我想象的要大得多,但这是一个不同的问题。 大数据结构位于由Snap服务器产生的所有客户端线程共享的“TVar”内。 客户可以使用小型查询语言来请求数据的任意部分。 数据请求量通常很小(高达300kb左右),只能触及数据结构的一小部分。 所有只读请求都使用“readTVarIO”来完成,所以它们不需要任何STM事务。 服务器使用以下标志启动:+ RTS -N -I0 -qg -qb。 这将以multithreading模式启动服务器,禁用空闲时间和并行GC。 这似乎加快了这个过程。 服务器大多运行没有任何问题。 然而,客户端请求每隔一段时间就会超时,CPU高达100%(甚至超过100%),并持续很长一段时间。 同时服务器不再响应请求。 我能想到的几个原因可能会导致CPU使用率: 这个请求需要花费很多时间,因为有很多工作要做。 这是不太可能的,因为有时会发生在以前的运行中已经certificate是非常快的请求(我的意思是20-80ms左右)。 在数据被处理和发送给客户端之前,仍然有一些未被评估的thunk需要被计算。 这也是不太可能的,与前面的观点一样。 不知何故垃圾收集踢,并开始扫描我的整个5GB的堆。 我可以想象这会花费很多时间。 问题是,我不知道如何弄清楚到底发生了什么,该怎么办。 由于导入过程需要很长时间,因此分析结果不会显示任何有用的信息。 似乎没有办法有条件地打开和closures代码内的分析器。 我个人认为GC是这里的问题。 我正在使用GHC7,似乎有很多选项来调整GC的工作方式。 通常非常稳定的数据使用大堆时,您推荐什么样的GC设置?

为什么P2Pnetworking托pipe不被广泛使用?

我们可以看到使用对等原则的系统的增长。 但是还有一个地方还没有被广泛使用:networking托pipe。 有几个项目已经启动,但没有一个大的解决scheme,允许用户使用和贡献一个点对点虚拟主机。 我不是指没有开放的项目(比如Google Web Hosting,它使用Google的资源,而不是用户),而是开放的项目,每个用户通过让资源(cpu,bandwith)能得到的。 我可以想到这样的系统的几个资产: 自动负载平衡 更好的地方 没有存储限制 自由 那么,为什么这样一个系统还没有被广泛使用呢? 编辑:我认为,“97.2%,PLZ种子!!” 问题发生是因为所有用户都不会播种所有的文件。 但是,如果一个系统中的所有用户对所有内容的贡献相同,那么这个问题就不会再发生了。 点对点存储系统(如Wuala)是可靠的,多亏了这一点。 专有代码的问题是相关的,以及用户可能不知道他所托pipe的内容(可能是“坏”)的事实。 感谢您的回答。 我又添加了另一个问题:与专用服务器相比,延迟可能更高。 编辑2:代码和数据的机密性可以通过encryption来实现。 例如,在Wuala中,所有文件都是encryption的,我认为在这个系统中没有已知的安全漏洞(但我可能是错的)。 确实,播种机不会有很多好处,或者很less。 但它会阻止人们依赖networking托pipe公司。 而我认为,这种分散的网站托pipe方式更接近于互联网最初的想法。

string与字符

我有一些来自IBM的幻灯片,命名为: “从Java代码到Java堆:了解应用程序的内存使用情况” ,也就是说,当我们使用String而不是char[] , 单个字符的最大开销是24:1! 但我无法理解这里提到的开销。 任何人都可以帮忙吗? 资源 :

Bash:为什么pipe道input“读取”只有在喂入“while read …”构造时才起作用?

我一直在尝试从程序输出读取环境variables的input,如下所示: echo first second | read AB ; echo $A-$B 结果是: – A和B都是空的。 我读了关于在子shell中执行pipe道命令的bash,并且基本上阻止了pipe道input读取。 但是,以下内容: echo first second | while read AB ; do echo $A-$B ; done 似乎工作,结果是: first-second 有人能解释一下这里的逻辑吗? 是不是在while … done构造中的命令实际上是在与echo相同的shell中执行的,而不是在子shell中执行的?

Rails 3.1:确定资产是否存在

有没有一种内置的方式来确定资产是否存在,而不诉诸File.exists?(File.join(Rails.root, "foo", "bar", "baz"))并通过资产path。 我的应用程序从Resque队列中的远程服务器上获取图像; 直到我们下载了图像,我想为占位符图像提供服务。 目前我正在使用File.exists …但是这意味着硬编码一个path,这吸引,或通过configuration的资产path。 这似乎应该在那里,但我不能在文档中find它。