小编Gab*_*l C的帖子

为什么 QEMU 在将 x86 转换为 M1 时无法接近 Rosetta 2 的性能?

显然,QEMU是唯一可以在新 Apple 芯片(M1、M2 等)上模拟 x86 操作系统的开源代码。

Apple 构建了 Rosetta 2,理论上,它与 QEMU 在这些场景中执行的操作完全相同。它将 x86 (Intel) 指令转换为新 Apple 芯片处理器支持的指令集。

Rosetta 2 具有出色的性能,某些 x86 应用程序甚至比在本机 x86 硬件上运行时具有更好的性能。另一方面,当在 Apple 芯片上运行 x86 Linux 时,QEMU 的表现还差得远。

Rosetta为何能有如此优越的性能?是否有任何只有 Apple 知道且从未与 QEMU 项目共享的架构“秘密”?QEMU 不允许访问哪些禁止的 API?

qemu apple-silicon rosetta-2

20
推荐指数
2
解决办法
1万
查看次数

Spring Web应用程序运行状况检查

我正在亚马逊的Beanstalk平台上部署基于Spring的Web应用程序,它们为我提供了为我的应用程序设置"健康检查"URL路径的选项.

我们的想法是,在部署之后,他们的平台将针对该URL执行请求,以查看应用程序是否已成功启动.因此,如果请求导致HTTP 200,则应用程序可能正常.但是如果它导致HTTP 500或其他东西,平台就会知道应用程序存在问题.

所以,我希望我可以开发某种servlet来检查Spring Application Context是否成功初始化,以便为平台提供适当的HTTP响应代码.

有没有人尝试这样的事情?出于类似的目的?

我想知道Spring是否已经为此提供了一些优雅的解决方案.

java spring amazon-web-services

7
推荐指数
1
解决办法
2万
查看次数

如何在 ELK 中删除旧日志以给每个应用程序一定的磁盘配额

我正在尝试在以下场景中使用 ELK (Elasticsearch+Logstash+Kibana) 堆栈:

我有大约十个应用程序通过 Logstash 将其日志发送到单个 Elasticsearch 集群。

其中一些应用程序自然会生成比其他应用程序更多的日志,有时,其中一个应用程序可能会变得“疯狂”,例如,由于存在错误,因此生成的日志条目甚至比平时更多。因此,集群中可用的磁盘空间可能会被单个应用程序的日志不公平地“占用”,而没有足够的空间留给其他应用程序。

我目前正在通过 Elasticsearch Curator 管理可用磁盘空间。它定期运行,就像在 crontab 中一样,并根据磁盘使用配额删除旧索引。当所有索引使用的磁盘空间超过一定限制时,将最旧的索引一个一个地删除,直到它们使用的磁盘空间总和再次回到指定的限制范围内。

这种方法的第一个问题是 Elasticsearch Curator 只能删除整个索引。因此,我不得不将 Logstash 配置为每小时创建一个不同的索引,并增加它们的粒度;因此,Curator 一次删除较小的日志块。此外,很难决定 Curator 运行的频率。如果应用程序以更高的速度生成日志,那么即使是一小时的索引也可能不够。其次,无法为每个不同的应用程序指定磁盘使用配额。

理想情况下,每当索引达到某个磁盘使用限制时,Elasticsearch 应该能够自行删除较旧的日志条目。这将消除定义 Curator 运行频率的问题。但是,我在 Elasticsearch 手册中找不到任何类似的功能。

有人会推荐一种不同的方法来解决这些问题吗?

参考资料:http : //www.elasticsearch.org https://github.com/elasticsearch/curator

elasticsearch logstash kibana

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

如何在Gradle构建中使用S3支持的Maven存储库的默认AWS凭证链?

根据Gradle文档(例50.27),我们可以使用带有Gradle 2.4的S3支持的Maven存储库.但是,文档中给出的唯一示例将显式AWS凭证传递给S3存储库声明:

repositories {
    maven {
        url "s3://someS3Bucket/maven2"
        credentials(AwsCredentials) {
            accessKey "someKey"
            secretKey "someSecret"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要做同样的事情,但我希望Gradle使用AWS JDK中的DefaultAWSCredentialsProviderChain而不是显式凭据.就像是:

repositories {
    maven {
        url "s3://someS3Bucket/maven2"
        credentials(AwsCredentials) {
            // Default AWS chain here?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,它就会找到我为我的EC2实例配置的实例配置文件凭据,其中Gradle构建将在其中运行.

有没有办法实现这个目标?或者,Gradle是否只能使用构建文件中给出的显式凭据对S3进行身份验证?

amazon-s3 gradle maven

6
推荐指数
1
解决办法
3205
查看次数

Ruby类加载机制

我开始使用Ruby编程语言,在开始研究Rails框架之前,我有兴趣深入理解它.

我目前有点失望,因为每个人都只关心Rails框架,而且语言的其他方面都没有深入讨论,比如它的类加载机制.

考虑到我开始做一些桌面/控制台实验,我想更好地理解以下事项:

  1. 将每个Ruby类放在一个单独的Ruby文件中是一个好习惯吗?(*.RB)
  2. 如果我有,让我们说.. 10个类...并且所有这些都相互引用,通过相互实例化并调用彼此的方法,我应该在每个文件中添加一个'require'语句来说明类需要哪些类在那个文件?(就像我们在每个Java类文件中使用'import'语句一样?)
  3. 在类声明之前或之后(内部)放置'require'语句是否有区别?
  4. 什么可以被认为是一个适当的Ruby程序的"切入点"?它告诉我任何.rb脚本都足够了,因为该语言没有像C或Java这样的约定,我们总是需要一个'main'函数的方法.
  5. 类加载是否被认为是执行Ruby程序的"阶段"?我们是否应该在开始时加载应用程序所需的所有类?
  6. 当我们运行需要它们的代码时,解释器本身是否应该负责查找和加载类?通过搜索$ LOAD_PATH变量中的路径,就像Java用它的$ CLASSPATH一样?

谢谢.

ruby

4
推荐指数
1
解决办法
2400
查看次数

为Java 8流的每个元素运行lambda并同时计算处理了多少元素的最优雅方法是什么?

什么是为Java 8流的每个元素运行lambda并同时计算处理了多少项的最优雅的方法,假设我只想处理流一次并且不改变lambda之外的变量?

java-8

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