草庐IT

多目标优化

全部标签

c++ - 如何在不同的目标平台上以编程方式巧妙地注册 32 位 COM/DLL 组件?

我曾使用以下函数在32位Windows平台(如WindowXP和Windows7)上注册我的32位COM/DLL组件。它工作正常。但是在64位Windows7上运行时,该函数无法注册成功。结果符合预期!intRegisterComponent(LPCTSTRlpszDllName){//LoadthelibraryHINSTANCEhLib=LoadLibrary(lpszDllName);if(hLib==NULL){return-2;}typedefHRESULT(CALLBACK*HCRET)(void);HCRETlpfnDllRegisterServer;//Findthee

c++ - 优化

我正在尝试使用OpenGL渲染3个四边形(1个背景图,2个Sprite)。我有以下代码:voidGLRenderer::onDrawObjects(longp_dt){float_log_last_time=ELAPSED_MS;fprintf(stdout,"--startingdraw:%.4f,dTime:%.4f\n",ELAPSED_MS,ELAPSED_MS-_log_last_time);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);for(std::vector::iteratoritr=m_displayList.b

windows - 如何创建具有两个目标的快捷方式

我正在使用以下脚本创建快捷方式:SetoShellLink=objShell.CreateShortcut("shortcut.lnk")oShellLink.TargetPath="C:\Windows\System32\mshta.exeD:\path\to\file.hta"oShellLink.WindowStyle=1oShellLink.IconLocation="logo.ico"oShellLink.Description="app"oShellLink.WorkingDirectory=desktopoShellLink.Save在oShellLink.TargetP

windows - 在 Windows Power shell 脚本中编写 tsv 文件的优化方法是什么?

我只是一个新手,我写了一个小脚本来生成一个tsvtxt文件。代码是$("x")+"`t"+("y")+"`t"+$("z")|Add-ContentC:\temp\DCO.txt$i=0$ts=Get-Datewhile($i-le1000000){$x="N/A"$y="N/A"$z="N/A"($x)+"`t"+($y)+"`t"+($z)|Add-ContentC:\temp\DCO.txt$i++}$tf=Get-Date花了很多时间。如果有一些其他优化的方法来编写大小约为50mb或可能更大的tsv文件。谢谢 最佳答案 我会

c++ - 来自目标线程的 PostThreadMessage

今天,我看到了这样一段代码:voidFoo(){MyMsgStructmyMsg;/*omissionforsimplicity*//*sendtoupdatethread*/PostThreadMessage(myThreadId,myMessage,(WPARAM)myMsg,NULL);}当从与myThreadId相同的线程调用Foo()时会发生什么,即从应该是目标线程的相同线程调用?是性能问题还是只是糟糕的代码编写或两者兼而有之?我相信它可能会影响性能,因为我相信它会将消息排队到线程的队列中,而不是仅仅做它应该做的事情,因此会稍微减慢程序速度。线程安全不是我关心的问题对于这个问

windows - 从 Delphi 启动 Windows 优化应用程序 (Windows 10)

我们有一个遗留的Delphi7应用程序,它启动Windows碎片整理和屏幕键盘应用程序,如下所示://DefragmentationapplicationShellExecute(0,'open',PChar('C:\Windows\System32\dfrg.msc'),nil,nil,SW_SHOWNORMAL);//On-screenkeyboardShellExecute(0,'open',PChar('C:\Windows\System32\osk.exe'),nil,nil,SW_SHOWNORMAL);两者都在WindowsXP上工作,但在Windows10上失败。我发现

windows - Windows批处理文件街机游戏的优化

我制作了一个批处理文件游戏,它可以运行,但它不稳定且丑陋。我已经了解线程,但我不想在我的第一个版本中实现它。我希望在我开始用这个游戏做更高级的事情之前降低优化。我的问题是:我可以对这款游戏进行哪些优化,使其1.不会断断续续2.显示效果不会那么烦人。欢迎任何有关如何使其更快更清晰或占用更少内存的想法或评论,但是,请不要发布以下答案:“不要使用批处理”“重写(在此处插入语言)”“用vb执行此部分-script”等...因为它们没有帮助,也没有回答问题。欢迎任何和所有非批量仇恨的批评。代码如下:@setlocalenableextensionsenabledelayedexpansion@e

c++ - 为什么 .o(目标文件)链接速度比 .lib(静态库)快?

在我的工作场所,我们的产品编译成可执行文件,子项目链接为静态库(.lib)或共享库(.dll)。我们使用MicrosoftC++编译器。最近,我的一位同事将一个子项目目标从.lib(静态库)转换为.o(目标文件),并且该子项目的链接时间急剧减少。早些时候,.lib链接需要大约1.5分钟。通过链接到.o,链接时间几乎为5-6秒。为什么链接.lib比链接.o慢? 最佳答案 如果您所做的只是编译源代码以创建目标文件,那么您根本就没有执行链接。这意味着任何对源代码中存在的外部函数和变量的引用都不会起作用,因为它们的地址尚未解析。https:

windows - cl.exe 标志或设置以在/O1 或更高级别禁用尾调用优化(相当于 gcc -fno-optimize-sibling-calls)

我从事一个项目,我们维护自己的堆栈爬虫(出于各种原因)。我们需要能够以一定的可靠性抓取堆栈。目前我们遇到了一个问题,函数尾部调用了我们感兴趣的函数,并且我们的堆栈跟踪跳过了调试构建(/Od)中会出现的帧。我们已经禁用了帧指针优化和内联(/Oy-和/Ob0),因此我们可以获得更好的堆栈跟踪,但我们仍然希望能够启用一些优化(/O1)以使代码更快。但是,尾调用仍然会干扰我们的堆栈跟踪。是否有任何标志或设置可以在MSVC中禁用此优化?gcc有-f(no-)optimize-sibling-calls,涵盖了这一点。 最佳答案 不,您可以将尾

windows - 如何编写批处理文件以从源复制到目标

我需要编写一个批处理文件以从源复制到目标。一旦用户输入源路径和目标路径,批处理文件就会将文件从源复制到目标。到目前为止我有set/psource=\PATH\TO\SOURCExcopy%source%"c:\PATH\TO\DESTINATION"/e/h/k/o但这只允许用户输入源路径。我还需要允许用户输入目标路径的代码。任何帮助是极大的赞赏。 最佳答案 做这样的事情:SET/PUSERSOURCE=Pleaseenterthesourcepath:SET/PUSERDEST=Pleaseenterthedestinationp