草庐IT

Linux——进程

全部标签

C 代码在 Windows 上比在 Linux 上慢

我正在开发一个项目,该项目将针对32位和64位Windows和Linux进行构建。该项目基于为文本文件加载字符串、对其进行处理并将结果写入SQLite3数据库。在Linux上,它达到每秒近400k个序列,由GCC编译,没有任何优化。然而在Windows上它卡在每秒100k个序列,在没有任何优化的情况下在VS2010上编译。我尝试在编译器中使用优化,但没有任何改变。这样对吗?Windows上的C代码运行速度较慢?编辑:我想我需要更清楚地说明一些要点。我在启用和禁用代码优化的情况下进行了测试。性能没有改变,可能是因为我的程序的瓶颈是浪费时间从HD读取数据。该程序利用了并行计算的优势。有一个

c++ - 进程范围上的 SetThreadLocale

我知道如果我想使用LCID为我的线程更改语言环境,我可以调用SetThreadLocale,但如何使用LCID在进程范围内设置它? 最佳答案 WinApi无法做到这一点。语言环境是按用户设置的,您不能设置进程的语言环境,您只能按线程设置。 关于c++-进程范围上的SetThreadLocale,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16953261/

c++ - 从 Qt 4.x (Ubuntu Linux) 迁移到 Qt 5.1 (Windows 7)

我去年在UbuntuLinux平台上用Qt4.x中的QtCreator做了一个程序。现在我不使用linux,而是使用Windows7。我再次需要我去年制作的程序。我在Windows7平台上下载并安装了QtCreator。它随Qt5.1一起提供。我尝试重建它。我收到以下消息。我该怎么办?C1083:无法打开包含文件:'QtGui/QApplication':没有那个文件或目录C1083:无法打开包含文件:'QDialog':没有那个文件或目录谢谢 最佳答案 在Qt5中,QApplication不再是QtGui模块的一部分,它现在位于Q

linux - MMU 实现

简短的问题:页表存放在哪里?它是在MMU(完全硬件实现)还是在RAM(涉及操作系统)中?我试图弄清楚RAM访问是否涉及将线性地址映射到物理地址以防TLB未命中。我想答案是否定的,实现完全是硬件,但我不确定。我看到有人提到它既可以是硬件也可以是软件,但我对英特尔处理器的常见情况很感兴趣。 最佳答案 Intel架构中的TLB在硬件中处理。Thispaperfromintel引用TLB实现。 关于linux-MMU实现,我们在StackOverflow上找到一个类似的问题:

c# - COM 对象注册——允许多个?

我有两个具有不同GUID值但名称相同的COM对象。一个是另一个的更新版本。当我使用Name.exe/regserver注册两者时会发生什么?我查看了注册表,它们都显示了相同的ProgID,但它们各自的GUID值不同。它们指向它们在硬盘驱动器上的不同位置。这是个问题吗?我正在尝试让旧版本的项目与新版本的项目一起工作(但不是同时运行),我认为这两者之间存在冲突。COM对象是在VB6中创建的。使用它们的代码是C#。它们作为引用添加到各自的C#项目中。一个注册后,我无法编译另一个(也无法成功运行)。在调查此问题时还有哪些其他信息会有所帮助? 最佳答案

c - 如何在同一进程内共享共享对文件的读/写访问权限,但在外部禁止它?

我有几个对象持有同一个文件的句柄。但是,这些对象中的每一个都在读/写文件的不同部分。我需要阻止对该文件的外部访问,但仍然能够在我的进程中为其创建新的句柄。如果我在调用CreateFile时不共享读/写访问权限,我就无法从我的进程中获取文件的新句柄。如果我使用DuplicateHandle,所有句柄将共享相同的文件位置。我可以通过为根据需要到处寻找的文件制作代理来解决这个问题,但这会导致糟糕的设计。有什么办法可以实现这样的内部共享? 最佳答案 根据您的需要,您可以调用一次CreateFile()来创建/打开文件,然后让您的每个对象使用

linux - 有时在 windows 和 linux 中 mktime 的结果不同

这是函数time_ttime_from_string(constchar*timestr){if(!timestr)return0;structtmt1;memset(&t1,0,sizeof(t1));intnfields=sscanf(timestr,"%04d:%02d:%02d%02d:%02d:%02d",&t1.tm_year,&t1.tm_mon,&t1.tm_mday,&t1.tm_hour,&t1.tm_min,&t1.tm_sec);if(nfields!=6)return0;t1.tm_year-=1900;t1.tm_mon--;t1.tm_isdst=-1;/

c++ - 用于检测启动和终止的应用程序/进程的 WIN32 API

这个问题在这里已经有了答案:Howtodetectwin32processcreation/terminationinc++(9个回答)关闭9年前。我正在寻找一个WIN32API来检测应用程序在我的应用程序中的启动和终止。我正在寻找开发一个dockBar/TaskBar,我需要为它获取启动和终止的应用程序的句柄。

Java:从命令行运行时重定向内部进程输出

我使用以下代码来重定向我从我的Java应用程序启动的进程的输出:ProcessBuilderbuilder=newProcessBuilder("MyProcess.exe");builder.redirectOutput(Redirect.INHERIT);builder.redirectErrorStream(true);现在,当我从eclipse运行代码时,它工作正常-我可以在Eclipse的控制台中看到输出。然而,当我创建一个jar文件并从cmd窗口运行它时,例如java-jarMyJar.jar,它不打印进程的输出。这可能是什么原因? 最佳答案

c++ - SYSTEM 进程是否可以与非 SYSTEM 进程共享数据?

我正在尝试使用QSharedMemory和QClipboard在SYSTEM进程(在WinSta0\\Winlogon桌面)和普通用户进程,但都无法与普通桌面上运行的其他非SYSTEM进程共享数据。我相信这是因为WinSta0\\Winlogon桌面是一个独立的桌面。我的应用是一个拍摄Windows安全桌面并将其发送到剪贴板的程序。问题是:有没有办法在该进程和非SYSTEM进程之间共享内存数据?(实际上我正在使用一个文件来完成这项工作)。 最佳答案 在WindowsVista及更高版本中,系统服务在隔离的session(“sessi