我正在用C++编写一个程序来执行特定系统的模拟.对于每个时间步长,执行的最大部分是由单个循环占用.幸运的是,这是非常平行的,所以我决定使用Boost Threads并行化它(我在2核机器上运行).我期望加速接近串行版本的2倍,因为没有锁定.但是我发现根本没有加速.
我实现了循环的并行版本如下:
然后每个线程执行以下操作:
主线程等待工作完成障碍.
我使用这种方法,因为它应该提供良好的负载平衡(因为每次计算可能需要不同的时间量).我真的很好奇可能导致这种放缓的原因.我总是读到原子变量很快,但现在我开始怀疑它们是否有性能成本.
如果有人有什么想法或任何提示,我会非常感激.我一直在抨击它一个星期,并且剖析没有透露太多.
编辑:问题解决了! 我将详细说明我是如何解决这个问题的.我再次使用gprof,但这次编译时没有优化标志(-O3).然后,分析器立即表明我在函数中花费了不可思议的时间,该函数对每个单独的粒子执行计算:远远超过串行版本.
此功能是虚拟的,可以多态访问.我改变了代码直接访问它,而不是通过vtable和voila'并行版本产生了近2的加速!串行版本的相同更改几乎没有影响.
我不知道为什么会这样,如果有人知道的话会感兴趣!
感谢所有的海报.你们都在某种程度上有所帮助,接受一个答案是非常困难的.
parallel-processing performance multithreading boost-thread atomic-values
如何转换
x = "0x000000001" # hex number string
Run Code Online (Sandbox Code Playgroud)
至
y = "1"
Run Code Online (Sandbox Code Playgroud) 我的iPhone上有一个应用程序发出Http请求; 是否可以使用某些工具查看HTTP流?
我在我的Windows PC上使用独立版本的(IEInspector)HttpAnalyzer工具来监控来自所有进程的HTTP流量,包括Android手机上的应用程序(感谢android调试桥接口).我可以为iPhone应用程序使用类似的OS X工具吗?这甚至是允许的吗?
提前致谢.
我的PHP工作选择的文本编辑器是Panic的Coda.但是对于Ruby on Rails,它的自动完成功能一直在我的方式中,并且ROR在2个空格选项卡上的标准化与Coda的设置不相符.我一直在回到TextMate进行ROR工作,但是想知道是否有更好的选择.
我使用自定义字段“下载文件”扩展了 ModelAdmin,它是我的 Django 项目中 URL 的链接,例如:
http://www.myproject.com/downloads/1
Run Code Online (Sandbox Code Playgroud)
在那里,我想提供一个存储在 S3 存储桶中的文件。存储桶中的文件不是公开可读的,用户可能无法直接访问它。现在我想
理想的解决方案是让 django 充当代理,将 S3 块直接传输给用户。我使用 boto,但没有找到流式传输块的可能性。有任何想法吗?
谢谢。
制作Grails项目中几乎所有类都可以访问的变量的最佳实践是什么?是否有可用于存储该数据的配置文件(即application.properties)?
谢谢.
我正在使用log4net来记录我的Web应用程序的进度,使用Log4PostSharp来AOP-injectify所有方法.这具有记录(几乎)所有内容的期望效果,并且很好.
我现在需要将JUST Page_Load方法记录到文件/控制台.我显然可以使用log4postsharp类来执行此操作,但之后我将丢失所有其他日志记录.
我一直在查看log4net中的过滤器,从StringMatch过滤器开始,但只查看正在记录的消息,并且我在方法名称之后.这让我进入了PropertyFilter,但仍然没有喜悦.我的log4net.config片段是这样的:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.PropertyFilter">
<key value="LocationInfo.MethodName"/>
<stringToMatch value="Page_Load"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="d:\\xxxx\\yyyyy\\zzzzLog"/>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试通过LocationInfo键入日志记录事件的MethodName,但我仍然记录了所有内容.编辑:正如评论中所提到的,我现在已经包含了我在RTFM之后添加的DenyAllFilter ;-)
有人可以帮忙吗?
谢谢,
迈克K.
我正在为一个应用程序制作一个菜单,并指向这个有用的资源,它列出了作为android 2.0 jar一部分的所有drawable.给出的用法示例是
myMenuItem.setIcon(android.R.drawable.ic_menu_save);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我想要的那个(以及大多数列表)默认不可用.我明白了
android.R.drawable.ic_menu_login cannot be resolved
Run Code Online (Sandbox Code Playgroud)
当我尝试设置菜单项图像时:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Add two example menu buttons
int groupId = 0;
int menuItemOrder = Menu.NONE;
int menuItemId = 1;
String menuItemText = "Add Login Details";
MenuItem menuItem = menu.add(groupId, menuItemId, menuItemOrder, menuItemText);
menuItem.setIcon(android.R.drawable.ic_menu_login )
Run Code Online (Sandbox Code Playgroud)
最近的Android版本有什么变化吗?似乎大多数现在都是"私人资源"...找不到这方面的信息,但我发现了一些建议:
它用于访问私有资源.不要使用它,因为这些私有资源经常被删除/重命名/等.使用它很可能会在将来破坏您的应用程序.
为什么他们会改变资源名称?(他们背后的图像肯定,但名称?)我如何访问ic_menu_login呢?有没有比上述更好的理由?
我们已经开始使用ASP.NET recaptcha控件,它工作正常.但我们的要求之一是所有出站流量超过Https.
我知道recaptcha支持https,但是在使用ASP.NET插件选项时,不清楚如何配置(或者即使它是可配置的).
有没有人有这方面的经验?
我将对我迄今发现的内容进行一点扩展....
Recaptcha包含3个公共类
RecaptchaControl,
RecaptchaValidator
和
RecaptchaResponse
RecaptchaControl
是一个Asp.NET控件,那里的recaptcha特定方法似乎与主题/外观有关.
Validator的一个实例有一个RemoteIP字段(我认为它代表验证服务器),但我无法将其绑定到控件.
RecaptchaResponse
似乎或多或少代表具有可能响应的枚举(有效/无效/无法连接).
看起来像的Recaptcha控制智能地选择的https如果请求是HTTPS.我认为它在验证方面也是如此,但从源代码http://code.google.com/p/recaptcha/source/browse/trunk/recaptcha-plugins/dotnet/library/来看并不清楚
private const string VerifyUrl = "http://www.google.com/recaptcha/api/verify";
private const string RECAPTCHA_SECURE_HOST = "https://api-secure.recaptcha.net";
private const string RECAPTCHA_HOST = "http://api.recaptcha.net";
--------------------------------SNIP------------------------------------
/// <summary>
/// This function generates challenge URL.
/// </summary>
private string GenerateChallengeUrl(bool noScript)
{
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.Append(Context.Request.IsSecureConnection || this.overrideSecureMode ? RECAPTCHA_SECURE_HOST : RECAPTCHA_HOST);
urlBuilder.Append(noScript ? "/noscript?" : "/challenge?");
urlBuilder.AppendFormat("k={0}", this.PublicKey);
if (this.recaptchaResponse != null && this.recaptchaResponse.ErrorCode != …
Run Code Online (Sandbox Code Playgroud) asp.net ×3
macos ×2
amazon-s3 ×1
android ×1
boost-thread ×1
boto ×1
django ×1
django-admin ×1
grails ×1
http-monitor ×1
https ×1
iphone ×1
log4net ×1
nhibernate ×1
performance ×1
postsharp ×1
python ×1
recaptcha ×1
string ×1
syntax ×1
text-editor ×1