问题列表 - 第39881页

我如何判断我的进程是CPU绑定,I/O绑定,内存绑定还是

我正在努力加快编译我的应用程序所花费的时间,而我正在调查的一件事是检查哪些资源,如果有的话,我可以添加到构建机器以加快速度.为此,我如何确定是否应该投入更多的CPU,更多的RAM,更好的硬盘或者该进程是否受到其他资源的约束?我已经看到了这个(如何检查应用程序是cpu绑定还是内存绑定?)并且我正在寻找更多提示和指针.

到目前为止我尝试过的:

  • 在构建计算机上与本地计算机上的进程计时.我发现构建机器需要的时间是我的机器的两倍.

  • 运行"资源监视器"并查看进程运行时的CPU使用率,内存使用情况和磁盘使用情况 - 在执行此操作时,我无法解释数字,主要是因为我不明白每个列的含义以及转换为虚拟机与物理盒以及多CPU盒的含义.

windows performance resources performancecounter virtual-machine

14
推荐指数
1
解决办法
3205
查看次数

WPF DataTemplate在卸载时重置某些依赖项属性

我有一个DataTemplate由是源自媒体元素控制的MediaElementBaseWPF媒体工具库.该MediaElementBase类提供了两个属性,LoadedBehaviorUnloadedBehavior允许用户指定当元素加载/卸载会发生什么.

我发现在a DataTemplate(如下)中使用它时,这些属性在卸载模板时会重置为默认值,但在Unloaded调用事件之前,意味着只UnloadedBehavior执行默认值:

<DataTemplate DataType="{x:Type Channels:AnalogChannel}">
    <Controls:AnalogTvGraphFileElement
        LoadedBehavior="Play"
        UnloadedBehavior="Stop"
        Channel="{Binding}" />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

当控件只是页面上的元素并Unloaded通过正常的导航事件发生时,不会发生这种情况.

调试DependencyPropertyChanged EventHandler显示内部方法System.Windows.StyleHelper.InvalidatePropertiesOnTemplateNode(在PresentationFramework.dll中)检查是否DependencyProperty可能继承,如果不是,则使其无效.果然,更改LoadedBehavior/ UnloadedBehavior添加的属性元数据会FrameworkPropertyMetadataOptions.Inherits在模板更改时阻止此属性重置.

有谁知道为什么会这样?我可以添加Inherits标志作为解决方法,因为此元素没有受此影响的子元素,但我想知道为什么/是否正确的做法.

如果您正在了解有关我正在做什么以及为什么要更改的更多信息,DataTemplates您可以查看此问题以获取说明.

.net c# wpf datatemplate

7
推荐指数
1
解决办法
1305
查看次数

如果出现故障,C#关闭流并删除文件

我正在使用C#中的文件流.它是一个存储缓存,所以如果写入文件(损坏的数据,...)有问题,我需要删除该文件重新抛出异常来报告问题.我正在考虑如何以最好的方式实现它.我的第一个尝试是:

Stream fileStream = null;
try
{
    fileStream = new FileStream(GetStorageFile(),
        FileMode.Create, FileAccess.Write, FileShare.Write);
    //write the file ...
}
catch (Exception ex)
{
    //Close the stream first
    if (fileStream != null)
    {
      fileStream.Close();
    }
    //Delete the file
    File.Delete(GetStorageFile());
    //Re-throw exception
    throw;
}
finally
{
    //Close stream for the normal case
    if (fileStream != null)
    {
      fileStream.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您将看到的,如果写入文件有问题,fileStream将关闭两次.我知道它有效,但我不认为这是最好的实现.

我认为我可以删除finally块,然后关闭块中的流try,但我在这里发布了这个,因为你们都是专家,我想听听专家的声音.

提前致谢.

c# filestream

3
推荐指数
2
解决办法
3万
查看次数

Mercurial - 如何从fork的父级获取最新更改?

我现在已经和Mercurial进行了一段时间的讨论,现在我已经在BitBucket上设置了几个项目,一个项目就是另一个项目.

我已经能够毫无问题地对每个仓库进行更改,但有一点我无法弄清楚,那就是如何通过父仓库的变化来保持最新的仓库?

在我分叉了一个repo之后,我只看到了从repo到X版本的提交,之后我只看到了fork自己的提交,没有新的父提交.

我非常肯定,在我涉及git的过程中,我能够重新修改最新的父版本,但那是一段时间了,我宁愿不再猜测我的坏习惯:-)

mercurial fork bitbucket

17
推荐指数
2
解决办法
6159
查看次数

嵌入式系统的设计/实施模式

那里是否有嵌入式系统设计和/或实现模式的良好来源?书籍或优质的网络资源。

主题可以是:

  • 关于将寄存器地址与驱动程序实现分开的典型方法的反思。
  • 或者使用/构建硬件抽象层的实践,以及如何从中获得最大的收益。
  • 为多个硬件版本/平台构建相同的代码库。
  • 对ISR进行优先级排序,并将其分为时间关键部分,并在时间允许的情况下执行。
  • 嵌入式系统的单元测试或什至是测试驱动的开发?

我想我要的是与GoF相似的东西,但专门针对嵌入式软件开发。

谢谢

embedded tdd design-patterns

5
推荐指数
1
解决办法
726
查看次数

如何从下拉列表中选择一个值

客户名称是包含近30个值的下拉列表,我想从Watir脚本的下拉列表中选择一个值.

我使用了以下代码,但没有发生任何事情.

ie.select_list(:name,"Customers").选择"测试"

ruby watir

1
推荐指数
1
解决办法
1229
查看次数

hg忘了递归

是否有一种快速的递归方式

hg forget
Run Code Online (Sandbox Code Playgroud)

在一个文件夹?我不小心把我不想要的东西版本化了

mercurial

13
推荐指数
1
解决办法
3815
查看次数

Cython没有速度提升

我试图定义一个包含内部循环的函数来模拟积分.

问题是速度.在我的机器上评估该功能一次最多可能需要30秒.由于我的最终目标是最小化这个功能,一些额外的速度会很好.

因此,我试图让Cython工作,但我必须犯一个严重的错误(可能很多人!).在Cython文档之后,我尝试输入我的变量.这样做之后,代码就像纯Python一样慢.这看起来很奇怪.

这是我的代码:

import numpy as np 
cimport cython
cimport numpy as np
import minuit

data = np.genfromtxt('q6data.csv', usecols = np.arange(1, 24, 1), delimiter = ',')  

cdef int ns    = 1000                 # Number of simulation draws
cdef int K     = 5                    # Number of observed characteristics, including            constant
cdef int J     = len(data[:,1])       # Number of products, including outside
cdef double tol   = 0.0001            # Inner GMM loop tolerance
nu = np.random.normal(0, 1, (6, ns))  # ns random deviates …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy cython

24
推荐指数
5
解决办法
8220
查看次数

部署策略,PHP + SVN

我只想讨论我们的部署策略并找出其中的差异.这个过程是这样的

- >特定版本的开发完成

- >所有开发人员将他们的文件提交到trunk

- >使用TOAD比较数据库模式并迁移更改

- >在SVN上创建一个新分支

- >使用SVN导出(删除.svn文件夹等)

- >缩小JS,CSS

- >上传到登台服务器

- >执行测试周期

- >修复分支上的错误并验证它们

- >重新缩小JS,CSS [如果需要]

- >上传到生产服务器

- >当我说上传时,它意味着通过SSH将文件上传到/ var/www/html文件夹

- >首先上传js,css,images

- >然后上传php文件

- >上传期间排除目录,如用户上传的图片等.

- >执行测试周期

- >修复错误并再次上传(可能需要重新缩小 - 几个文件)

- >验证错误

- >验证完成

- >将分支提交到svn

- >将更改合并回主干

- > commit trunk [在此部署周期中,没有人将任何文件提交到主干]

这个过程非常复杂,需要很多关注.

关于如何改进它的任何建议?

php svn deployment minify

7
推荐指数
1
解决办法
1351
查看次数

类的属性及其子类

是否可以定义仅对它们所定义的类可用的属性,以及该类的子类?

换句话说,有没有办法定义受保护的属性?

properties protected objective-c instance-variables

22
推荐指数
2
解决办法
1万
查看次数