我们正在研究开发一款Windows 8 Metro风格的应用程序,它的照片非常重,因此我们关注UI性能.在iOS上这是一个简单的决定(Objective-C over HTML来获得我们需要的UI性能),但研究Windows 8我很难说XAML比HTML5/CSS快多少.
我已经看到了XAML和HTML5(如之间的一般比较这一个),并有一个SO答案是触摸性能,但不提供数据来支持他的要求或解释为什么XAML更快.
根据我的阅读,HTML5/CSS使用IE10的渲染引擎进行渲染,这意味着它不是超级原生的,可能会更慢.但是我不确定XAML是如何渲染的,或者它是如何"原生"的.
有没有人在两种技术之间进行性能比较,或者您是否可以提供链接以进一步解释每种技术的呈现方式(考虑到性能)?
我有一个ModelAdmin包含外键字段的类list_display.但该模型的管理列表页面正在执行数百个查询,每行一个查询以从另一个表中获取数据而不是join(select_related()).
Django文档表明你可以list_select_related = True作为属性添加到你的ModelAdmin中以使其消失,但它似乎对我来说根本不起作用.这个问题似乎也提出了类似的问题,但他的解决方案尚不清楚,而且在我的案例中也不起作用.
这是我的模型和模型管理员的简化版本:
class Device(models.Model):
serial_number = models.CharField(max_length=80, blank=True, unique=True)
label = models.CharField(max_length=80, blank=True)
def __str__(self):
s = str(self.serial_number)
if self.label:
s += ': {0}'.format(self.label)
return s
class Event(models.Model):
device = models.ForeignKey(Device, null=True)
type = models.CharField(max_length=40, null=False, blank=True, default='')
class EventAdmin(admin.ModelAdmin):
list_display = ('__str__', 'device')
list_select_related = True
Run Code Online (Sandbox Code Playgroud)
但是,添加它list_selected_related = True并没有改变任何东西.我仍然得到很多像这样的查询而不是SQL连接:

任何想法为什么Django管理员似乎忽略我的list_select_related和做N查询?我正在使用Python 2.7和Django 1.3.3.
尽管Apple的文档另有说明,但NSURLCache在iOS上根本不进行任何磁盘(闪存)缓存.您可以子类化NSURLCache以更改获取和存储操作的行为以使用磁盘(如同SDURLCache),但由于以下严格限制了缓存的使用和实现方式,这不会像您期望的那样好用:
NSURLConnection甚至没有调用storeCachedResponse:forRequest:大约50KB的文件(确切地说> = 52428字节).这使得子类NSURLCache对我们的使用毫无意义(200KB图像),因为它甚至不会进入缓存.因此,我们必须在上面的级别手动添加缓存NSURLConnection.storeCachedResponse:forRequest:手动调用NSURLCache的内置函数,它也只会将响应存储在内存中,如果它小于大约180KB.我通过手动调用storeCachedResponse测试了这一点,并且发现currentMemoryUsage对于大约180KB以上的数据长度,之前/之后没有改变.所以我们也必须编写自己的LRU内存缓存.有没有人注意到这些问题?还是有什么我想念的?
仅供参考,我在模拟器和iPad 2上运行iOS 4.3.
我正在考虑将SCons用于新项目.它看起来真的很好,虽然我发现VariantDir很混乱.
我有一个简单的项目,在一个目录中有一些C源文件,我想在"正常"和"配置文件"模式下构建 - 与gcc有两组不同的选项.我希望输出分别进入普通/和配置文件/目录.
为了进行测试,我已经减少了一个源文件tc,其中有一个main().我的SConstruct文件位于同一目录中,如下所示:
normal = DefaultEnvironment(tools=['mingw'], CCFLAGS = '-O2')
normal.VariantDir('release', '.', duplicate=0)
normal.Program('t', ['t.c'])
#profile = normal.Clone(CCFLAGS='-O2 -pg', LINKFLAGS = '-pg')
#profile.VariantDir('profile', '.', duplicate=0)
#profile.Program('t', ['t.c'])
Run Code Online (Sandbox Code Playgroud)
当我运行scons时,我希望它将to和t.exe放入release /,但它将它们放在当前目录中.并且我无法运行它,并且3个配置文件行未注释 - 如果我这样做,我会收到此错误:
scons:***为同一目标指定了两个具有不同操作的环境:to
基本上,我不确定为什么我的VariantDir()调用没有告诉scons将输出放在指定的输出目录中release.
(我在文档和新闻组中读了很多,但没有回答这个问题.我最接近的是这个页面,它描述了类似的东西,但它涉及一个单独的src /目录和两个独立的scons文件,以及在它们之间导入/导出变量.这看起来不太愉快.)
我无法弄清楚为什么iOS会因为内存使用而终止我的应用程序(iPad,iOS 4),即使在释放大量内存以响应低内存警告之后也是如此.例如,这是一个典型的终止方案,我经常记录内存使用情况 - 查看"app"用法,每行的第一个KB值:
...
2011-12-14 13:25:42.343 Oyster[211:707] Memory usage (KB): app 268256, delta 6472, used 366800/373940
2011-12-14 13:25:43.292 Oyster[211:707] Memory usage (KB): app 273900, delta 5644, used 372444/381024
2011-12-14 13:25:44.159 Oyster[211:707] Memory usage (KB): app 282920, delta 9020, used 381464/389116
2011-12-14 13:25:45.184 Oyster[211:707] Memory usage (KB): app 272140, delta -10780, used 370684/379432
2011-12-14 13:25:46.109 Oyster[211:707] Memory usage (KB): app 260412, delta -11728, used 358956/365900
2011-12-14 13:25:48.443 Oyster[211:707] Received memory warning. Level=2
2011-12-14 13:25:48.454 Oyster[211:707] Memory usage (KB): app 9172, …Run Code Online (Sandbox Code Playgroud) 你如何HttpClient.GetAsync()一次启动多个请求,并在各自的响应回来后立即处理它们?首先我尝试的是:
var response1 = await client.GetAsync("http://example.com/");
var response2 = await client.GetAsync("http://stackoverflow.com/");
HandleExample(response1);
HandleStackoverflow(response2);
Run Code Online (Sandbox Code Playgroud)
但当然它仍然是顺序的.那么我试着立即启动它们:
var task1 = client.GetAsync("http://example.com/");
var task2 = client.GetAsync("http://stackoverflow.com/");
HandleExample(await task1);
HandleStackoverflow(await task2);
Run Code Online (Sandbox Code Playgroud)
现在任务同时启动,这很好,但当然代码仍然需要一个接一个地等待.
我想要的是能够在它进入时立即处理"example.com"响应,并在它进入时立即处理"stackoverflow.com"响应.
我可以将两个任务放在一个数组中,Task.WaitAny()在一个循环中使用,检查哪一个完成并调用适当的处理程序,但那么......这比常规的旧回调更好吗?或者这不是async/await的预期用例吗?如果没有,我将如何使用HttpClient.GetAsync()回调?
澄清一下 - 我所追求的行为就像这个伪代码:
client.GetAsyncWithCallback("http://example.com/", HandleExample);
client.GetAsyncWithCallback("http://stackoverflow.com/", HandleStackoverflow);
Run Code Online (Sandbox Code Playgroud) 只是想知道有多少人在Python中使用路径模块,比如Jason Orendorff的那个,而不是os.path用于加入和分割路径?你用过:
我知道Jason的路径模块被制作成PEP 355并被BDFL拒绝.这似乎主要是因为它试图在一个班级中做所有事情.
我们的用例主要是简化路径组件的连接和拆分,所以如果这样的路径类只实现了拆分/连接类型的操作,我们会很高兴.谁不想这样做:
path(build_dir, path(source_file).name)
Run Code Online (Sandbox Code Playgroud)
或这个:
build_dir / path(source_file).name
Run Code Online (Sandbox Code Playgroud)
而不是这个:
os.path.join(build_dir, os.path.basename(source_file))
Run Code Online (Sandbox Code Playgroud) 我知道类名的PEP-8约定是ClassName.但是我们经常使用小类作为伪命名空间,枚举等.换句话说,不是你要实例化的真正的类.我们选择了这种"类"的小写命名约定,因为它们实际上是命名空间/枚举名称.
有没有其他人有这种内部风格,或其他方式来实现同样的事情?
一个例子:
import urllib2
class config: # pseudo-namespace for module-level config variables
api_url = 'http://example.com/api'
timeout = 1.5
debug = True
class countries: # pseudo-enum
new_zealand = 1
united_states = 2
def func():
if config.debug:
print 'Calling func()'
return urllib2.urlopen(config.api_url)
Run Code Online (Sandbox Code Playgroud) 我有一张大桌子(约200万行),每行代表一张图像。我想为每个图像以JSON格式存储EXIF元数据。这个JSON Blob每个图片大约6KB。
这个EXIF元数据不会被频繁查询/使用,我想知道将它存储在具有两列(imageid,exifjson)的单独表中是否会更有效,或者PostgreSQL是否会只处理它可以作为text现有表格上的一列。我不想添加该列来显着减慢表上的常规查询,也不希望添加数百万个6KB的文本值来压低PostgreSQL。
下面的代码打印空白而不是'11',我无法弄清楚原因.更换[0-9]*与[0-9]{1,2}打印"11".任何人都可以帮忙吗?
import re
test_string = 'cake_11xlfslijg'
pattern = '.*(?P<order>[0-9]*)'
result = re.compile(pattern).search(test_string)
if result:
print 'result'
print result.group('order')
else:
print result
Run Code Online (Sandbox Code Playgroud) python ×5
ios ×3
objective-c ×3
caching ×2
nsurlcache ×2
windows-8 ×2
async-await ×1
asynchronous ×1
c ×1
c# ×1
coding-style ×1
django ×1
django-admin ×1
html5 ×1
json ×1
makefile ×1
path ×1
performance ×1
postgresql ×1
regex ×1
scons ×1
sdwebimage ×1
sql ×1
terminate ×1
winrt-xaml ×1
xaml ×1