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的评论也是受欢迎的。

适用于Linux的Windows资源编辑器

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

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

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

我怎么知道我的进程是CPU限制,I / O限制,内存限制还是

我试图加快编译我的应用程序的时间,而我正在研究的一件事是检查哪些资源(如果有的话)可以添加到构build机器中以加快速度。 为此,我该如何确定是否应该投入更多的CPU,更多的内存,更好的硬盘或者是否有其他资源绑定进程? 我已经看到了这个( 如何检查应用程序是cpu绑定还是内存绑定? ),我正在寻找更多的技巧和指针。 我到目前为止所尝试的是: 在构build机器上对我的本地计算机上的进程计时。 我发现构build机器的时间是我的机器的两倍。 运行“资源监视器”,在进程运行时查看CPU使用情况,内存使用情况和磁盘使用情况 – 在这样做的时候,我很难解释这些数字,主要是因为我不明白每列的含义以及如何转化为一台虚拟机与一台物理机箱,以及它对多CPU机箱的意义。

在multithreading应用程序中等待variables的最佳方法是什么?

我想为multithreading程序做如下的事情: // wait for variable to become true but don't hog resources // then re-sync queues 这是一个很好的解决scheme吗? while (!ready) { Thread.Sleep(250); // pause for 1/4 second; };

修改正在运行的可执行文件的资源内容

所有, 我将我的应用程序设置存储在资源中。 当我的程序第一次加载时,我使用WinAPI读取指定的资源。 然后我parsing检索到的字节数据。 这对我来说完美无瑕。 现在让我们说一个用户在我的应用程序中改变一个设置。 他/她检查一个checkbox控件。 我想将更新的设置保存到我的资源。 但是,我的应用程序运行时,似乎我的UpdateResource调用不起作用。 即使尺寸相同,我也无法修改资源数据。 首先,是否可以修改正在运行的图像的资源数据? 其次,如果这是不可能的,我有什么替代scheme可以在我的应用程序内部存储设置? 注:我必须有我的运行可执行文件中的设置。 他们不能在硬盘上或在registry中。 请不要build议作为一个选项。

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", […]