假设我从一些URL下载了一个(可能很大的)图像列表.我正在使用Scala,所以我要做的是:
import scala.actors.Futures._
// Retrieve URLs from somewhere
val urls: List[String] = ...
// Download image (blocking operation)
val fimages: List[Future[...]] = urls.map (url => future { download url })
// Do something (display) when complete
fimages.foreach (_.foreach (display _))
Run Code Online (Sandbox Code Playgroud)
我对Scala有点新意,所以对我来说这看起来仍然有些神奇:
display _)是否会在主线程上执行,如果没有,我该如何确定呢?谢谢你的建议!
我正在使用Matplotlib绘制两个子图,主要是:
subplot(211); imshow(a); scatter(..., ...)
subplot(212); imshow(b); scatter(..., ...)
Run Code Online (Sandbox Code Playgroud)
我可以在这两个子图之间画线吗?我该怎么办?
我知道在使用Android模拟器时这是一个经常出现的问题,但有没有办法强制模拟器接受持久性更改/system?
仿真器基于QEMU,因此理论上应该可以强制system图像以相同的方式运行userdata(例如),但我不熟悉QEMU如何处理事情.有什么指针吗?
这是我第一次摆弄iOS5和ARC.到目前为止,这么好,它有效,但我遇到了某种问题.
我有一个自定义UIStoryboardSegue,我使用Facebook Connect(或其他服务)将用户登录到我的应用程序.简而言之,它应该做到以下几点:
相反,是登录开始,但是在有机会完成之前,ARC会立即释放segue.
我想到了一个快速的黑客来阻止这个:
@interface BSLoginSegue() {
__strong BSLoginSegue *_retained_self;
}
@end
// Stuff...
// Other stuff...
- (void) perform {
login();
_retained_self = self;
}
- (void) loginServiceDidSucceed:(BSLoginService *)svc {
...
_retained_self = nil;
}
Run Code Online (Sandbox Code Playgroud)
问题是,它真的是一个黑客,所以我想知道是否还有其他更优雅的方式我可以做同样的事情?
我正在编写一个显示很多的应用程序,我的意思是,在HTML5画布上有很多2D路径(由数百个,数千个小段组成).通常,几百万点.这些点从服务器下载到二进制文件中ArrayBuffer.
我可能不会在现实世界中使用那么多点,但我对如何提高性能感兴趣.如果你愿意,可以称之为好奇心;)
无论如何,我测试了以下解决方案:
使用gl.LINES或gl.LINE_STRIP使用WebGL,并计算GPU上着色器中的所有内容.目前最快的,可以显示多达10M的细分,而不会在我的Macbook Air上退缩.但是如果你想避免在JavaScript中处理事情,那么对二进制格式有非常严格的限制.
使用Canvas2D,在一次stroke()调用中绘制一条包含所有段的巨大路径.当我超过100k点时,页面会在画布更新前冻结几秒钟.所以,不在这里工作.
使用Canvas2D,但使用自己的stroke()调用绘制每个路径.尽管其他人一直在互联网上说,这比在一次调用中绘制所有内容要快得多,但仍然比WebGL慢很多.当我达到约500k段时,事情开始变得糟糕.
两个Canvas2D解决方案需要循环遍历JavaScript中所有路径的所有点,因此这非常慢.您是否知道可以提高JavaScript在ArrayBuffer中的迭代速度或一般处理速度的方法?
但是,奇怪的是,在所有画布绘制调用完成后,屏幕不会立即更新.当我开始达到性能限制时,绘制调用结束和画布更新之间会有明显的延迟.你知道它来自哪里,有没有办法减少它?
考虑以下Cython代码:
cimport cython
cimport numpy as np
import numpy as np
@cython.boundscheck(False)
@cython.wraparound(False)
def test_memoryview(double[:] a, double[:] b):
cdef int i
for i in range(a.shape[0]):
a[i] += b[i]
@cython.boundscheck(False)
@cython.wraparound(False)
def test_numpy(np.ndarray[double, ndim=1] a, np.ndarray[double, ndim=1] b):
cdef int i
for i in range(a.shape[0]):
a[i] += b[i]
def test_numpyvec(a, b):
a += b
def gendata(nb=40000000):
a = np.random.random(nb)
b = np.random.random(nb)
return a, b
Run Code Online (Sandbox Code Playgroud)
在解释器中运行它(在几次运行后预热缓存):
In [14]: %timeit -n 100 test_memoryview(a, b)
100 loops, best of 3: 148 ms per …Run Code Online (Sandbox Code Playgroud) 该on_commit功能已经被添加到Django的1.9到能够在当前事务提交后触发一个动作(如芹菜任务).
他们后来在文档中提到应该TransactionTestCase用来测试依赖于该功能的功能.但是,与TestCase(使用事务并将其回滚)不同,TransactionTestCase在每次测试后清空整个数据库.
不幸的是,我有数据迁移在数据库中预加载一些有用的数据,这意味着在第一次测试清除数据库后,后续测试不再起作用.
我最后通过嘲笑来诉诸于一个肮脏的伎俩on_commit:
with mock.patch.object(django.db.transaction, 'on_commit', lambda t: t()):
test_something()
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我出于好奇而问这个问题,在出于性能原因使用GLU之前首先尝试实现这样的算法.
我已经研究过常见的算法(Delaunay,经常会提到Ear Clipping),但我似乎无法理解GLU如何一直这么做.
你们有没有关于这个主题的有趣论文或文章?
如何使用 ffmpeg 命令行以及正确的颜色和亮度元数据对 RGB 图像中的 HDR10 视频进行编码?
在搜索有关如何正确编码 HDR10 流的信息时,有很多 ffmpeg 命令行示例,但我没有找到任何包含使用 RGB 帧作为输入时可以调整的所有参数的完整列表的示例。
例如:
我已经阅读了大量的消息再次说同样的事情:当你使用NSURLConnection时,不会调用委托方法.我理解Apple的文档是不完整的并且引用了弃用的方法,这是一种耻辱,但我似乎无法找到解决方案.
请求代码在那里:
// Create request
NSURL *urlObj = [NSURL URLWithString:url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urlObj cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
if (![NSURLConnection canHandleRequest:request]) {
NSLog(@"Can't handle request...");
return;
}
// Start connection
dispatch_async(dispatch_get_main_queue(), ^{
self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; // Edited
});
Run Code Online (Sandbox Code Playgroud)
...代理方法的代码在这里:
- (void) connection:(NSURLConnection *)_connection didReceiveResponse:(NSURLResponse *)response {
NSLog(@"Receiving response: %@, status %d", [(NSHTTPURLResponse*)response allHeaderFields], [(NSHTTPURLResponse*) response statusCode]);
self.data = [NSMutableData data];
}
- (void) connection:(NSURLConnection *)_connection didFailWithError:(NSError *)error {
NSLog(@"Connection failed: %@", error); …Run Code Online (Sandbox Code Playgroud) python ×3
ios ×2
objective-c ×2
android ×1
arrays ×1
canvas ×1
cython ×1
django ×1
emulation ×1
ffmpeg ×1
future ×1
html ×1
html5 ×1
io ×1
javascript ×1
matplotlib ×1
numpy ×1
opengl ×1
performance ×1
scala ×1
tesselation ×1
testing ×1
transactions ×1