小编Cra*_*tis的帖子

C中几个耗时的操作是什么?

我正在寻找一个可以在各种机器上编译和运行的快速基准程序.而不是使用商业/开源可用的选项,我宁愿自己使用线程和算法优化技术.

我有一对我已经使用过的,包括递归计算斐波那契序列的第n个数,以及播种/ rand()数千次.

是否有其他算法相对简单,但同时计算密集(可能与数学相关)?

(请注意,这些操作将以C语言实现.)

c algorithm math cpu benchmarking

13
推荐指数
1
解决办法
6755
查看次数

下载iCloud文件的方法?很混乱?

我在我的应用程序中有基本的iCloud支持(同步更改,无处不在等),但到目前为止一个重要的遗漏是缺乏对云中存在(或有变化)的文件的"下载"支持,但不是与当前磁盘上的内容同步.

我根据一些Apple提供的代码,在我的应用程序中添加了以下方法,并进行了一些调整:

下载方式:

- (BOOL)downloadFileIfNotAvailable:(NSURL*)file {
    NSNumber*  isIniCloud = nil;

    if ([file getResourceValue:&isIniCloud forKey:NSURLIsUbiquitousItemKey error:nil]) {
        // If the item is in iCloud, see if it is downloaded.
        if ([isIniCloud boolValue]) {
            NSNumber*  isDownloaded = nil;
            if ([file getResourceValue:&isDownloaded forKey:NSURLUbiquitousItemIsDownloadedKey error:nil]) {
                if ([isDownloaded boolValue])
                    return YES;

                // Download the file.
                NSFileManager*  fm = [NSFileManager defaultManager];
                NSError *downloadError = nil;
                [fm startDownloadingUbiquitousItemAtURL:file error:&downloadError];
                if (downloadError) {
                    NSLog(@"Error occurred starting download: %@", downloadError);
                }
                return NO;
            }
        }
    }

    // Return …
Run Code Online (Sandbox Code Playgroud)

macos objective-c ios icloud

13
推荐指数
3
解决办法
9446
查看次数

IntelliJ IDEA Gradle项目无法识别/定位Antlr生成的源

我在一个简单的Kotlin/Gradle项目中使用Antlr,而我的Gradle构建生成Antlr源,它们无法导入到项目中.

如您所见(左侧),正在生成类(Lexer/Parser等).我还将此generated-src/antlr/main目录配置为源根目录.我看到的大多数问题都将此列为解决方案,但我已经完成了.

多次重建(在IDEA和CLI上)并且遵循所有常见的"无效缓存和重新启动"问题后,问题仍然存在.

此外,导入问题在CLI上的Gradle构建中列出,因此它似乎与IDEA无关.

我在这里错过了什么?

在此输入图像描述

这是build.gradle我最初创建项目时IDEA生成的文件,以及IDEA用于项目/工作区同步的文件.

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.2.50'
}

group 'com.craigotis'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

apply plugin: 'antlr'

dependencies {
    antlr "org.antlr:antlr4:4.5"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
Run Code Online (Sandbox Code Playgroud)

java intellij-idea gradle kotlin antlr4

13
推荐指数
1
解决办法
1317
查看次数

AsyncContext响应与原始传入请求不匹配?

我们有一个带有仪表板的Web应用程序,该仪表板不断轮询更新.在服务器端,更新请求是异步的,以便我们可以在通过侦听器/通知系统进行更新时进行响应.

我们看到的问题是,当响应其中一个轮询请求时,它可以在某些情况下写入用户单击链接的请求/响应.

传入的异步更新请求如下所示:

@RequestMapping("/getDashboardStatus.json")
public void getDashboardStatus(HttpServletRequest request, ...) {
    final AsyncContext asyncContext = request.startAsync();
    // 10 seconds
    asyncContext.setTimeout(10000);
    asyncContext.start(new Runnable() {
        public void run() {
            // .. (code here waits for an update to occur) ..
            sendMostRecentDashboardJSONToResponse(asyncContext.getResponse());
            if (asyncContext.getRequest().isAsyncStarted()) {
                asyncContext.complete();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

有什么奇怪的是,有一些去其他页面上此仪表板的链接.每次约100次点击,其中一个将不显示所选页面,实际显示上面发送的JSON!

例如,我们有一个单独的MVC方法:

@RequestMapping("/result/{resultId}")
public ModelAndView getResult(@PathVariable String resultId) {
    return new ModelAndView(...);
}
Run Code Online (Sandbox Code Playgroud)

当点击访问的仪表板上的链接时/result/1234,每个蓝月亮,页面将加载200 OK状态,但实际上不包含预期的HTML,而是包含轮询请求的JSON!

每个客户只允许一个请求吗?由单击的链接发起的请求是否会覆盖已从同一客户端位于服务器端的任何异步请求?

我们如何管理这些请求以确保异步响应转到异步请求?

我注意到了一个hasOriginalRequestAndResponse() …

java spring asynchronous spring-mvc java-ee

12
推荐指数
1
解决办法
1179
查看次数

Swift闭包:无法将类型'(_) - > Bool'的值转换为预期的参数类型

我正在使用filter()Swift中的方法,但遇到一个我似乎无法在操场上重现的问题.

编辑:在此处上传了一个示例项目:https : //www.dropbox.com/s/5ce5uyxnpb0mndf/WeirdSwifty.zip?dl = 0

我有一个Card包含CardType枚举的结构:

struct Card {
    var name = ""
    var type : CardType

    enum CardType {
        case Red
        case Black
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个Player维护这些Card项目数组的类:

class Player {
    var hand : [Card]

    init() {
        hand = ...
    }

    func redCards() -> [Card] {
        return hand.filter({ (card) -> Bool in
            return card.type == .Red
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,无论我如何尝试格式化此闭包,Xcode都会抛出错误.我甚至让Xcode自动完成闭包签名/正文,认为我有一个语法错误,但它一直在重建它(正确?)方式:

在此输入图像描述

我也尝试过编辑Xcode自动生成的内容并提供更简单的版本,但无济于事:

在此输入图像描述

同理:

在此输入图像描述

正如我所提到的,我无法在一个简单的游乐场示例中重现这一点,但我无法缩小在我的主项目中实际导致问题的原因.

这是我项目中唯一的错误,如果我注释掉包含filter()调用的方法,它会正确构建. …

xcode swift

12
推荐指数
1
解决办法
3万
查看次数

无法访问在docker中创建的docker-compose容器

我有一个docker-compose.yml文件在端口上启动简单的HTTP回显服务8800.

version: '2'

services:
    echo-server:
        image: luisbebop/echo-server
        container_name: echo-server
        ports:
        - "8800:8800"
Run Code Online (Sandbox Code Playgroud)

超级简单的东西.如果我docker-compose up在本地计算机上运行并运行:

echo "Hello World" | nc 127.0.0.1 8800
Run Code Online (Sandbox Code Playgroud)

然后我看到回声.但是:如果我在docker容器中运行同一个compose场景,通过GitLab运行器,它会失败.

我试图在GitLab上引起关注这个问题,但结果有限:https://gitlab.com/gitlab-org/gitlab-ce/issues/26566

我的.gitlab-ci.yml文件看起来像:

---

stages:
  - docker_test

services:
  - docker:dind

docker_test:
  stage: docker_test
  image: docker:latest
  script:
  - docker version
  - apk update
  - apk add py-pip
  - pip install docker-compose
  - docker-compose up -d
  - sleep 10
  - netstat -tulpn
  - docker-compose port echo-server 8800
  - …
Run Code Online (Sandbox Code Playgroud)

docker gitlab-ci gitlab-ci-runner docker-compose

12
推荐指数
1
解决办法
1156
查看次数

使用atos通过dSYM确定崩溃的方法名称

我有一个来自用户的控制台堆栈(不是崩溃报告),我正在尝试确定我的应用程序中哪个方法调用是最后一个人.

我知道他们正在使用哪个版本的应用程序,并且我有一个该发布/调试版本的副本,以及存档副本的dSYM文件.

但是,当我尝试使用atos吐出内存地址时,它似乎没有帮助.(我在0x000000010e703bc0下面的堆栈中使用.)

craig-mbp:Desktop Craig$ atos -o MyApp.app_1.0.0.dSYM/Contents/Resources/DWARF/MyApp -arch x86_64
0x000000010e703bc0 (<- entered by me)
0x000000010e703bc0 (<- console output)
Run Code Online (Sandbox Code Playgroud)

我需要输入某种偏移吗?或者根据用户提供给我的地址,某种内存地址数学来确定程序内存块中的实际位置?

这是我收到的堆栈跟踪的总和:

28/11/12 10:48:56.220 AM    MyApp[411]  (
    0   CoreFoundation                      0x00007fff8fee90a6 __exceptionPreprocess + 198
    1   libobjc.A.dylib                     0x00007fff8e94a3f0 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8fee8e7c +[NSException raise:format:] + 204
    3   Foundation                          0x00007fff92b1ce5c -[NSPlaceholderString initWithString:] + 93
    4   Foundation                          0x00007fff92b1cde4 +[NSString stringWithString:] + 43
    5   MyApp                               0x000000010e703bc0 MyApp + 23488
    6   MyApp                               0x000000010e70a038 MyApp + 49208
    7   MyApp                               0x000000010e70b41a MyApp + …
Run Code Online (Sandbox Code Playgroud)

debugging xcode objective-c stack-trace

11
推荐指数
1
解决办法
3951
查看次数

使用Dropbox API进行应用程序导出合规性

之前已经问过这个问题(或者这个问题的变体),但是由于Apple的出口合规规则相对频繁地变化,似乎没有人得到一个直接的答案,我想我会问.

我编写了一个使用Dropbox API 0.2版的iPhone应用程序.

我已经通过电子邮件向Apple发送了关于此特定API的使用情况,我将确保更新这个问题,因为我了解更多并听取了Apple的回复.与此同时,如果任何开发人员在他们的iPhone应用程序中使用Dropbox API,您是否将应用程序标记为使用加密?

编辑:仔细检查后,看起来文件数据也使用SSL传输.由于他们的API通过HTTPS使用NSMutableURLRequest类,我仍然无法确定此API是否"使用加密".如果在App Store提交页面中我标记它确实包含加密,那么Apple会询问我是否使用了大于64位对称加密密钥.

encryption cocoa-touch objective-c dropbox app-store

10
推荐指数
1
解决办法
1652
查看次数

合并现有的Hibernate模型对象时是否得到UnsupportedOperationException?

从Hibernate 3升级到4后,我们正在解决沿途弹出的一些问题.让我们特别难过的是UnsupportedOperationException,其中现有对象从数据库中提取,调整和合并.

问题是Hibernate似乎是在添加一个对象AbstractList

这似乎只发生在一个特定的对象类型,当我们在DAO中保存时,但是我们可以告诉我们:

  1. 我们没有使用任何会导致创建不可变实例的sublist()或asList()方法.
  2. 检查正在保存的对象(这是巨大的并且有很多孩子)我不认为它的任何子项都是AbstractList类型.

以下是堆栈点周围的代码片段:

HibernateDao.save():

@Transactional
public void save(T item) {
    try {
        getSessionFactory().getCurrentSession().merge(item);
    } catch (Exception ex) {
        LOGGER.debug("Unable to merge", ex);
        LOGGER.warn("Unable to merge item, saving instead. (Of type " + item.getClass() + ")");
        getSessionFactory().getCurrentSession().saveOrUpdate(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

我们正在保存的用户项目有许多子项目,如下所示:

@OneToMany(cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private Map<String, Project> associatedProjects = new HashMap<String, Project>();
Run Code Online (Sandbox Code Playgroud)

Project班有其他类似标注的孩子,但凡事都有CascadeType.ALL,和LazyCollectionOption.FALSE定义.

这是(非常高)堆栈跟踪:

请注意,我们的代码以 com.company.application

06/04 18:15:45 DEBUG [Thread-19258] hibernate.HibernateDao.save- Unable to …
Run Code Online (Sandbox Code Playgroud)

java hibernate list h2

10
推荐指数
1
解决办法
3161
查看次数

如何确定 Docker 容器(在 M1 MacBook 上)何时通过 qemu 运行?

已经提到,当在 M1 Mac 上使用 x86_64 Docker 镜像时,当没有可用的 ARM64 镜像时,该容器将在qemu仿真下启动以实现兼容性。(以性能为代价。)

很多时候,当我运行一组容器(以及针对该批次的集成测试)时,我会看到qemu-system-aarch64一些核心。

我的问题:对于给定的运行容器列表(即docker ps),我如何确定哪些是本机运行的,哪些是被模拟的?

macos qemu docker apple-silicon

10
推荐指数
1
解决办法
1121
查看次数