草庐IT

高效率

全部标签

xml - 用于转换大型 XML 文件的内存高效 XSLT

这个问题与arecentanswerby有关michael.hor257k,它又与ananswerby相关迪米特雷·诺瓦切夫。当使用上述答案中的样式表时(来自michael.hor257k),对于大型XML(大约60MB,示例XML如下所示),转换成功进行。当尝试另一个样式表时,它与michael.hor257k的有点不同,目的是将元素(带有子sectPr)和它们的后续兄弟元素(直到下一个带有childsectPr),递归地(即将元素分组到输入XML的深度)。示例输入XML:我试过的样式表:出于好奇,我在转换大约60MB的XML时遇到了OutOfMemoryError。我想知道,我想我

xml - 与在 Dom4J 中使用 DOM 相比,XPath 的效率如何?

例如考虑以下xmlsomecontent1somecontent2somecontent3somecontent1somecontent2somecontent3somecontent1somecontent2somecontent3使用DOM获取根节点,然后循环遍历childNode和grandChildNode效率高还是使用XPath表达式收集子节点和grandChild节点的详细信息效率高? 最佳答案 如果您想要完整地处理一个XML文档,就反序列化时间、CPU使用率和内存使用率而言,将XML解析为DOM几乎总是效率最低的。解析

xml - EXI(高效 XML 交换)即将到来……XML API 准备好了吗?

W3的EXI(高效XML交换)将被标准化。它号称是“最后的二进制标准”。它是存储优化的XML数据的标准处理和存储,与XML模式捆绑在一起(使数据强类型和强结构)。嗯,有很多声称的优势。最让我印象深刻的是处理和内存效率测量。我在问自己,所有已建立的公司将会发生什么XMLAPI?有一段与我的问题相关:4.2ExistingXMLProcessingAPIsAsEXIisanencodingoftheXMLInfoset,anEXIimplementationcansupportanyofthecommonly-usedXMLAPIsforXMLprocessing,soEXIhasnoim

.net - 最高效的xml解析方式

.Net框架现在有(至少)四种不同的读取Xml字符串的方法。我已经使用了XmlDocument、XmlReader、XPath和XElement中的每一个,但在编码或执行期间使用哪个最有效?每一种都是为不同的任务而设计的,优缺点是什么?更新:使用XmlReader似乎是读取xml的最快方式,这对我来说听起来很合理,但也有其局限性。我想知道XmlDocument和XLinq在非顺序访问xml方面是否存在任何性能差异。更新:我发现一些帖子比较了加载xml文档的不同方法。XmlReader是最快的,XmlDocument和LINQtoXML之间没有显着差异,直到您加载具有10,000+个节点

c++ - 高效读取共享资源

我有多个线程,这些线程中的任何一个都可以写入由任何其他线程访问的字符串。我不能同时写入和读取,但我看不出有什么理由不能从两个不同的线程读取同一个资源两次。在C++中,我如何允许对字符串进行异步读取,而不允许同时进行异步写入和读取?我设想我会以某种方式等待Mutex的所有权,并以某种方式让其他读取操作知道拥有线程正在执行读取操作而不是写入操作,因此它也可以读取,但我不能不要真的在某处放置一个简单的标志说“我正在阅读”,因为一旦第二次读取由于该标志而忽略互斥锁,第一次读取操作将退出并且在执行第二次读取操作时可能会发生写入操作。我不知道该怎么做。 最佳答案

windows - MulDiv 是否比存储已知值和在其他代码中进行数学计算效率低

我正在使用Delphi2007并开发一些演示软件。我正在研究的当前模块是视频的过渡过滤器。我正在使用的转换代码(TPicShow的PSEffects单元)需要基于帧尺寸和转换进度的X和Y值。这是代码TypeTPercent=0..100;varATo:TBitmap;//Prog:Integer;//ProgressofthetransitionifATo.Width>=ATo.HeightthenbeginX:=MulDiv(ATo.Width,Prog,High(TPercent));Y:=MulDiv(X,ATo.Height,ATo.Width);endelsebeginY:=

java - Windows和Unix上传下载动态转换的高效方式

要求是Upload来自txt,zip,doc,csv,xls的任何类型的一个或多个文件(如Window,...)至Unix系统使用JSP/Java网页。系统必须动态转换Char-set,EOL等等...来自Windows的东西至Unix支持的格式。注意:上传文件也可以是Unix格式。同样,如果用户想要下载相同的文件或不同的文件(存在于Unix文件系统中),它必须转换为Windows支持的格式。我试过了,写了一个perl脚本来转换这两种方式。在上传/下载文件之后/之前,系统会调用相应的脚本进行格式转换。dos2unix.shperl-pi-e's/\r\n?/\n/g'filenameu

windows - 套接字服务器的高效重叠 I/O

这两种不同模型中的哪一种会更有效(考虑抖动、处理器缓存的利用、整体设计等等)?1IOCP和启动X个线程(其中X是计算机拥有的处理器数量)。这意味着我的“服务器”将只有1个IOCP(队列)用于所有请求和X线程来服务/处理它们。我读过很多讨论这种设计效率的文章。使用此模型,我将拥有1个也将关联到IOCP的监听器。让我们假设我可以弄清楚如何使数据包/请求保持同步。XIOCP(其中X是计算机拥有的处理器数量),每个IOCP有1个线程。这意味着每个处理器都有自己的队列和1个线程来服务/处理它们。使用此模型,我将有一个单独的监听器(不使用IOCP)来处理传入连接并将SOCKET分配给正确的IOCP

windows - 对大型内存映射文件的高效稀疏访问

我们有大型(例如700MB)文件中的图像数据。这些文件在Windows764位上进行内存映射。对图像数据的一些操作涉及我们从图像的每一行读取几个字节。这可能很慢——没有一行比一页大,所以即使我们只读取几个字节,我们也会为每一行得到一个页面错误。在我们当前的实现中,我们无法解决这个问题,但我们希望确保我们能够最大限度地利用磁盘系统。为了获得最佳性能,我们希望在处理当前行中的数据时提示VM系统获取下一行图像(可能导致页面错误)。这将使我们的处理和页面错误并行化。在Windows上似乎没有明显的方法来执行此操作!所以问题:在Windows7上是否有任何等效于madvise(MADV_WILL

c++ - 如何在 C++ 中创建高效的可移植计时器?

对于一个学校项目,我需要在不使用以下外部库的情况下(重新)创建一个功能齐全的R-Type多人游戏版本:提升SFML/SDLQt不允许使用C++11此外,该游戏必须在Fedora(Linux)和Windows之间完全可移植。我负责服务器,因此严禁使用任何图形库。为了创建正确的游戏循环,我需要一个正确的Timer类,类似于在实现GetTicks()或GetElapsedTime()方法的SDL中找到的类。但我问自己创建这样一个类的最佳方法是什么,到目前为止我会这样开始:使用pthread(可移植)创建线程类在循环中使用函数time()和difftime()来确定自上次报价以来经过了多少时间