草庐IT

提升效率

全部标签

javascript - element.cloneNode(true)(深度克隆)的效率如何?

我正在使用XSL模板在XMLDOM对象中构建HTML代码,用作div元素的innerHTML的内容。传统上,我们创建一个新的XMLDOM文档并将输入参数添加为XML元素,以便通过javascript进行转换。这一切都非常耗时,因为我们基本上是从另一个代表我们当前帐户的XML文档中手工挑选数据,并将数据复制到一个transientXMLDOM文档中。我想做的是克隆帐户文档的相关节点(即客户信息)并将其用作转换的基础。我不想直接使用帐户文档,因为我希望能够添加特定于转换的输入,而无需更改帐户对象。对于通常包含2000多个元素的文档中通常少于200个元素的所需节点,使用.cloneNode(

xml - 使用 Perl XML::Twig 处理程序处理大文件的内存使用效率低下

我偶尔需要从大型XML数据库导出中提取数据。文件大小在600到700MB之间。经过几天的研究,我得出结论XML::Twig是要走的路,因为它的处理程序允许我逐块处理文件。我按照示例进行操作,经过数小时的反复试验,我编写了执行我需要完成的工作的Perl代码。代码有效,它提取了我想要的数据并计算了我需要的细节。但是在运行脚本时(处理620MB的XML需要大约15分钟),我在事件监视器中注意到,到最后内存使用率迅速增加到不合理的高水平。我删除了处理我感兴趣的XML标签的Perl代码,并用一条指令替换它来增加一个变量,只需计算product的数量。元素已被发现。内存使用情况类似。首先是正常的,

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

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

windows - 可能使用提升的权限创建的日志文件

我有一个非常古老的应用程序,现在需要对WindowsServer2008友好。它是一个作为单例运行的用户应用程序。它使用注册表的HKLM部分来读取和写入配置,并创建日志文件。主要问题:如何根据当前最佳实践使应用程序与UAC一起工作?我最初的方法是在非提升的情况下运行应用程序,如果需要更改配置,用户手动重新启动提升的应用程序,重新配置,然后重新启动为非提升的。问题是日志文件也可以创建提升,然后非提升的应用程序无法写入它。可能的解决方法:不要在提升模式下做任何暗示写入日志文件的事情。但是如何检测应用程序是否处于提升模式?创建具有非提升权限的日志文件,即使在提升模式下也是如此。怎么样?如果打

windows - 如何提升 .net 应用程序权限?

我有一个应用程序会在启动时检查更新,如果找到更新,它会通过网络将一些文件复制到程序文件文件夹中。显然,在正常情况下,标准用户无法执行此类任务。我尝试创建一个服务来执行更新过程,但我遇到了一些安全问题,我askedthisquestion关于它在super用户。现在,考虑到大多数应用程序需要提升权限才能执行此类任务这一事实,我认为这可能是正确的方法。但是我如何在包括XP在内的所有Windows版本下请求更新程序的提升。我发现了很多关于list文件的主题,但由于我需要它来处理XP,所以我无法专门为UAC创建解决方案。. 最佳答案 权限只

c# - 从提升的应用程序执行用户特权任务

我有一个以管理权限运行的应用程序。使用应用程序list自动提升权限。在这个应用程序中,我必须以启动该应用程序但没有提升的用户身份执行一些代码。我怎样才能实现它? 最佳答案 您可以使用impersonation以达到预期的效果。为了在没有密码的情况下模拟当前用户,您需要找到用户运行的另一个进程并从中获取token。资源管理器对此很有帮助。Here是完整的示例代码。 关于c#-从提升的应用程序执行用户特权任务,我们在StackOverflow上找到一个类似的问题:

windows - ActiveX 无法在没有特权提升的情况下运行 .exe

我们开发了一个ActiveX表单控件,可以安装在IE8+中。此控件检查注册表项,然后在需要时下载并安装一个小安装程序。对于管理员,一切都按预期在Windows7和8上与任何IE版本8+一起工作。对于非管理员用户,控件运行(它必须由管理员安装,但没关系),它会在路径C:\users\user\AppData\中下载可执行文件client_setup.exeLocal\Temp\Low\但当它尝试运行可执行文件时(shellexec或createprocess产生相同的结果)需要管理帐户并出现UAC提升提示。如果非管理员用户下载并安装相同的设置,则不需要管理权限(我们在exelist中声明

c++ - 使用 CreateProcessAsUser 函数从提升的进程创建非提升的进程

我正在运行一个具有SYSTEM权限的程序。我从LogonUser(szUserName,NULL,szPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&hToken)中请求句柄的用户名和密码以进行本地登录。我想运行cmd.exe程序作为登录提供的用户凭据。登录成功,但当我尝试运行该过程时,没有任何反应。程序中止。我的代码是...//cmd.cpp:Definestheentrypointfortheconsoleapplication.//#include#include#include#include#include#i

c++ - 您可以在不重新打开重新打开 win32 窗口的情况下执行需要提升的任务吗?

是否可以在不重新打开整个窗口的情况下执行需要提升的任务(在我的示例中,我必须编辑注册表)?所以我有一个CPL项目,它的页面可以选择编辑我的应用程序设置(写入注册表)。是否只有当用户点击apply或ok时才可以执行此操作?但无需重新打开整个cpl窗口。 最佳答案 Alf的评论已经说明了很多:不。Windows与进程绑定(bind),进程创建后无法提升。当然,您可以有第二个子进程,它实际上不显示任何东西,只是执行请求的任务。或者,您可以定义自己的COM对象来执行请求的任务,然后使用COMElevationMoniker在需要时以提升的状

c++ - Vista 中提升的进程不会覆盖文件

我正在尝试从另一个主机进程运行提升的进程,例如file_copier.exe,在Vista上使用ShellExecuteEx和lpVerb="runas"。它显示UAC对话框并以提升的方式运行,并将文件复制到“危险”文件夹,但它不会覆盖现有文件(exe)。我在这里读过:http://www.codeproject.com/KB/vista-security/UAC__The_Definitive_Guide.aspxUAC实际上不会覆盖现有文件,而是将新文件存储在某种缓存中。但我无法弄清楚(如果是这样的话)如何让它实际覆盖现有文件。感谢您的帮助。 最佳答案