Articles of 资源

Linux中每个进程的编程资源监视

我想知道是否有一个有效的解决scheme来监视Linux中的进程资源消耗(CPU,内存,networking带宽)。 我想用C ++编写一个守护进程来监视某些给定的PID。 据我所知,经典的解决scheme是周期性地从/ proc读取信息,但这似乎并不是最有效的方式(涉及很多系统调用)。 例如,为了监视50个进程每秒的内存使用情况,我必须每秒从/ proc打开,读取和closures50个文件(这意味着150个系统调用)。 更不用说在读这些文件时涉及的parsing。 另一个问题是networking带宽消耗:对于我想要监视的每个进程,这是不容易计算的。 NetHogs采用的解决scheme涉及到相当高的开销,我认为它使用libpcap捕获和分析每个数据包,然后为每个数据包确定本地端口并在/ proc中search以find相应的进程。 你知道是否有更有效的替代方法提出这些方法或任何图书馆处理这个问题?

跟踪线程内存和CPU消耗

我正在编写一个观察其他应用程序并跟踪资源消耗的Linux应用程序。 我正在计划使用Java,但编程语言对我来说并不重要。 目标很重要,所以我可以切换到其他技术或使用模块。 我的应用程序作为subprocess运行任何选定的第三方应用 大多数孩子软件解决了一些algorithm,如graphics,stringsearch等。观察程序跟踪孩子的资源,而它结束了工作。 如果子应用程序是multithreading的,也许有可能跟踪多less资源消耗每个线程? 可以使用任何非分配内存线程技术来编写应用程序:Java线程,Boost线程,POSIX线程,OpenMP,任何其他。

我如何检测Linux中的文件访问?

我有一些stream量和数据处理应用程序,我偶尔需要监视,这意味着我需要知道他们读的是什么文件。 这主要是为了帮助包装testing用例,但在debugging时也很有用。 有没有办法以这样的方式运行可执行文件,生成这样的列表? 我有两个想法: 有一个命令,我可以调用,该命令调用我的应用程序。 GDB的一些东西。 我调用GDB,给它一个可执行文件的path,一些参数和GDB为我调用它。 也许有类似的东西告诉我如何使用系统资源。 也许更有趣(但是不必要的方法)解决scheme。 创build名为libc.so的库,它实现了fopen(和其他一些库) 将LD_LIBRARY_PATH更改为指向新库 复制真正的libc.so,并在编辑器中重命名fopen(也许是nepof) 我的库加载副本并根据需要调用重命名的函数来提供fopenfunction。 调用应用程序,然后调用我的代理打开。 替代scheme1肯定会是更好的select,但是如何更容易做到2的评论也是受欢迎的。

Azureangular色是否需要在终止之前清理本地资源?

假设我的Azureangular色被通知,它很快就会被终止,并在技术上可以清理本身的资源(例如临时文件)。 它应该这样做吗? 我不问是否有人会看到我剩下的临时文件 – 我的angular色可以成为一个礼貌的好Azure公民。 清理当地资源的作用是否有意义,还是应该保持原样?

java- jar文件找不到资源

我正在一个Java应用程序,并在程序中使用一些文件,如图像,本地数据库和.htm文件(用作帮助文件)。 我试图使这些资源的访问,位置独立。 所以我已经在包含我的源文件,一个名为资源的子文件夹,我已经把所有这些图像,等。 我通过.getResource()方法访问它们,而不是使用path。 例如,这就是我如何访问图像资源: lang_icon=new javax.swing.ImageIcon(getClass().getResource("/myeditor/resources/checked.gif")); 问题是当构build.jar文件时,它不能正常工作。 它成功加载图像,但无法连接到本地数据库或打开.htm文件。 这里是我用来访问.htm文件的代码(当我通过Netbeans运行应用程序时它工作正常) URL helpFile= getClass().getResource("/myeditor/resources/help/help.htm"); try { BrowserLauncher launcher = new BrowserLauncher(); launcher.openURLinBrowser(helpFile.toString()); } catch (BrowserLaunchingInitializingException ex) { Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex); } catch (UnsupportedOperatingSystemException ex) { Logger.getLogger(mainAppFrame.class.getName()).log(Level.SEVERE, null, ex); } 这里是我用来访问我的本地数据库的代码 URL url = getClass().getResource("/myeditor/resources/icddb"); database = new File(url.getFile()); try { Class.forName("org.hsqldb.jdbcDriver"); con = DriverManager.getConnection("jdbc:hsqldb:file:" + database+"\\icddb", […]

在Windows上的Qt可执行文件中设置应用程序信息

任何人都有提示从Qt设置应用程序信息(即右键单击.exe->属性)? 我可以添加任意版本的string到Qt资源文件(qrc)并显示它们。 但大多数Windows安装程序检查版本号,我找不到一个Qt的方式来设置这些字段,而不是手动维护一个单独的.RC文件 某种方式可以让你从一个自动化版本更新这也是很好的!

使用UpdateResource更新string表

我问这里的问题 – 通过UpdateResource更新STRING TABLE(添加多个string) 现在我又问了一遍,因为这次我可以在这个问题上增加更多的细节。 我一直在尝试这个过去的一天,或没有真正有用的东西。 我想要的结果是这样的(我手动添加MSVS中的string):正如你可以看到,多个条目,它是“干净”,可以很容易地被程序访问! 现在,我的来源: wstring buffer[5] = {L" Meow",L" I",L" Am",L" A",L" Dinosaur"}; // ignore the string if (HANDLE hRes = BeginUpdateResource("Output.exe",TRUE)) { for (int i = 0; i < 5; i++) { wchar_t * temp; temp = new wchar_t[(buffer[i].length()+1)]; wcscpy(temp,buffer[i].c_str()); wcout << temp << endl; UpdateResource(hRes,RT_STRING,MAKEINTRESOURCE(1),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), temp, 48); //buffer[i].length()+1 […]

学习编程Windows驱动程序

你会推荐什么样的资源来学习驱动程序。 我正在通过编程Microsoft Windows驱动程序模型的方式,但我想知道是否有任何示例是Vista兼容。 另外,本书更是目前内核function的参考。 是他们的一个资源,将采取手中的初学者做一个更midmid wdm司机? 我已经做了基本的“你好世界”的驱动程序。 谢谢

适用于Linux的Windows资源编辑器

有没有Linux(FreeBSD等)的命令行工具,可以修改像exe文件资源黑客版本信息? 在Windows下有一些这样的工具,但是我正在FreeBSD上交叉构buildWindows Tcl Starpacks。 在源文件中,可以用我的versioninfo和图标重新编译TclKit,但是我不想为每个不同的应用程序执行它 – 看起来,调整starpack的.exe后来是一个更好的解决scheme。 提前致谢。

如何使用资源文件(txt – 制表符分隔)作为win32应用程序的数据源

我正在一个win32应用程序。 我目前正在使用具有制表符分隔的数据作为源的文本文件。 我想embedded这个作为一个资源,所以我不用担心运输这个文件与.exe文件一起。 谁能告诉我怎么做?