草庐IT

高效性

全部标签

c# - 如何最好地从方法中测试 XML 的有效性?

我有一些WCF方法用于将信息从服务器应用程序传输到网站前端以用于绑定(bind)。我将结果作为XElement发送,它是包含我要绑定(bind)的数据的XML树的根。我想创建一些测试来检查数据并确保它按预期出现。我目前的想法是:每个返回XElement树的方法都有一个对应的架构(.XSD)文件。此文件作为嵌入式资源包含在包含我的WCF类的程序集中。测试调用这些方法的方法并将结果与​​这些嵌入式模式进行比较。这是个好主意吗?如果不是,我可以使用哪些其他方法来“保证”方法将返回哪种XML?如果是,您如何根据模式验证XElement?我如何从嵌入它的程序集中获取该架构?

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的所有权,并以某种方式让其他读取操作知道拥有线程正在执行读取操作而不是写入操作,因此它也可以读取,但我不能不要真的在某处放置一个简单的标志说“我正在阅读”,因为一旦第二次读取由于该标志而忽略互斥锁,第一次读取操作将退出并且在执行第二次读取操作时可能会发生写入操作。我不知道该怎么做。 最佳答案

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 - 检查 UTF8 编码字符串的有效性

我们需要编写一个函数来检查字符串是否为有效的UTF8。客户端发送数据(应该是UTF8),在服务器端,我们要确认发送的数据是否真的是UTF8。客户端是BREW(移动平台)应用程序,服务器是在windows桌面上编写的(windows的API)。Windows中有没有API可以帮助确定UTF8字符串的有效性?我见过类似MultiByteToWideChar()的东西,它将UTF8转换为宽字符(2个字节),如果我们使用这个函数但它失败了,这意味着传递的字符串没有UTF8字符/字符。 最佳答案 您可以使用MultiByteToWideCha

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()来确定自上次报价以来经过了多少时间

c++ - 高效获取windows桌面截图

是否有比下面的代码更有效的获取Windows桌面拷贝的方法(使用GDI或任何其他库)HDCdcDesktop;HDCdcMem;HBITMAPhbmpMem;HBITMAPhOriginal;BITMAPbmpDesktopCopy;dcDesktop=GetDC(GetDesktopWindow());dcMem=CreateCompatibleDC(dcDesktop);hbmpMem=CreateCompatibleBitmap(dcMem,m_lWidth,m_lHeight);BitBlt(dcMem,0,0,m_lWidth,m_lHeight,dcDesktop,0,0,