我正在写一个光线追踪器.
最近,我添加了线程到程序,以利用我的i5四核上的额外内核.
在一个奇怪的事件发生时,应用程序的调试版本现在运行得更慢,但优化的构建运行速度比我添加线程之前更快.
我将"-g -pg"标志传递给gcc用于调试构建,并将"-O3"标志传递给优化构建.
主机系统:Ubuntu Linux 10.4 AMD64.
我知道调试符号会给程序带来很大的开销,但始终保持相对性能.即,更快的算法将始终在调试和优化构建中运行得更快.
知道为什么我看到这种行为吗?
调试版本使用"-g3 -pg"编译.带"-O3"的优化版本.
Optimized no threading: 0m4.864s
Optimized threading: 0m2.075s
Debug no threading: 0m30.351s
Debug threading: 0m39.860s
Debug threading after "strip": 0m39.767s
Debug no threading (no-pg): 0m10.428s
Debug threading (no-pg): 0m4.045s
Run Code Online (Sandbox Code Playgroud)
这使我确信"-g3"不应该归咎于奇怪的性能增量,但它更像是"-pg"开关."-pg"选项可能会添加某种锁定机制来测量线程性能.
因为无论如何"-pg"在线程应用程序上被破坏了,我只是删除它.
我正在编写一个基本的Django应用程序.出于测试/开发的目的,我正在尝试使用Django的开发服务器来提供网站的静态内容,如http://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files.
我的urls.py包含:
(r'^admin/(.*)', admin.site.root),
(r'^(?P<page_name>\S*)$', 'Blah.content.views.index'),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': 'C:/Users/My User/workspace/Blah/media',
'show_indexes': True})
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试访问一个文件,如http:// localhost:8000/static/images/Logo.jpg Django给了我一个404错误,声称"没有页面匹配给定的查询".
当我尝试访问一个文件,如http:// localhost:8000/static/images/Blah%20Logo.jpg时,它会提供文件!
这是怎么回事?
我很擅长使用SilverStripe进行开发.目前我正在使用Firefox/Kate在新平台上进行开发.
我想知道其他人用的是什么?有没有人使用Eclipse取得任何成功?是否还有其他适用于SilverStripe的IDE /环境/方法?
最近,在我累了之后,我写了下面的代码:
GLfloat* array = new GLfloat(x * y * z);
Run Code Online (Sandbox Code Playgroud)
当然应该是:
GLfloat* array = new GLfloat[x * y * z];
Run Code Online (Sandbox Code Playgroud)
(注意方括号而不是括号.)
据我所知,第一种形式无效,但g ++编译了它.当然,它吐出了一个完全不可理解的段错误,但它汇编了.
为什么?