小编Fab*_*ato的帖子

Swift构建总是在Docker中构建整个包

使用像这样的Dockerfile时:

FROM swift:latest
RUN mkdir foo && cd foo && swift package init
RUN cd foo && swift build && swift build
RUN cd foo && swift build
Run Code Online (Sandbox Code Playgroud)

当第3步运行时,swift build将仅编译应用程序一次,因为第二次执行将只使用已构建的对象,并且输出将是单个Compile Swift Module 'foo' (1 sources)

然而,在运行第4步时,它似乎忽略了已经构建的任何内容,并重新重建整个事物,尽管没有任何改变且没有干净.我已经尝试过运行a RUN ls /foo/.build && ls /tmp,一切似乎都已到位.

我想要实现的是设置我的图像,所以我首先从git克隆项目,构建它(所以这个"基础"层由docker缓存),然后COPY在本地机器的任何更改中构建只是新的更新,但最终建立整个项目2次.

任何的想法?

编辑:这是我的实际Dockerfile的样子:

FROM swift:latest
RUN git clone git@foo.com/foo.git
RUN cd /foo && swift build
COPY . /foo
RUN cd /foo && swift build
Run Code Online (Sandbox Code Playgroud)

理想情况下,前三层将保持缓存,最后两层只会构建新的更改,而不是最终重建整个项目

docker swift

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

Open GL +无限循环使神秘性能下降

我正在开发一个模拟器作为一个侧面/有趣的项目,但我遇到了一些性能问题,并且没有弄清楚它们来自哪里.

该应用程序主要由用于显示的GLKView和用于cpu仿真的具有无限循环的单独线程组成.这是一个示例,其中包含所有实际仿真代码,但仍然显示问题:

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    GLKView *glView = [[GLKView alloc] initWithFrame:self.view.bounds];
    glView.delegate = self;
    glView.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
    [EAGLContext setCurrentContext:glView.context];
    [self.view addSubview:glView];
    glView.enableSetNeedsDisplay = NO;
    CADisplayLink* displayLink = [CADisplayLink displayLinkWithTarget:glView selector:@selector(display)];
    [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

     dispatch_get_main_queue(), ^{
        dispatch_async(dispatch_queue_create("yeah", DISPATCH_QUEUE_SERIAL), ^{
            CFTimeInterval lastTime = 0;
            CFTimeInterval time = 0;
            int instructions = 0;
            while(1) {
                // here be cpu emulation
                if (lastTime == 0) {
                    lastTime = CACurrentMediaTime();
                } else {
                    CFTimeInterval newTime = CACurrentMediaTime();
                    time …
Run Code Online (Sandbox Code Playgroud)

performance multithreading opengl-es objective-c ios

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