All Projects → SchelleyYuki → M1 Test

SchelleyYuki / M1 Test

Java编译速度对比测试: M1 MacBook Air vs Intel Core i9 MacBook Pro

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to M1 Test

pytorch-aarch64
PyTorch wheels (whl) & conda for aarch64 / ARMv8 / ARM64
Stars: ✭ 137 (+23.42%)
Mutual labels:  arm64, aarch64
Rust Raspberrypi Os Tutorials
📚 Learn to write an embedded OS in Rust 🦀
Stars: ✭ 7,275 (+6454.05%)
Mutual labels:  arm64, aarch64
XNU
Research into porting the XNU kernel to ARM devices.
Stars: ✭ 76 (-31.53%)
Mutual labels:  arm64, aarch64
pinktrace
Pink's Tracing Library
Stars: ✭ 20 (-81.98%)
Mutual labels:  arm64, aarch64
Raspberrypipkg
DEPRECATED - DO NOT USE | Go here instead ->
Stars: ✭ 758 (+582.88%)
Mutual labels:  arm64, aarch64
insaneworks-packer-template
CentOS 7-8 8Stream / AlmaLinux 8 / FreeBSD 12 - 13 x64 + VirtualBox / VMWare for Packer Template + FreeBSD 13 / AlmaLinux 9 + Parallels
Stars: ✭ 38 (-65.77%)
Mutual labels:  arm64, aarch64
Sse2neon
A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation
Stars: ✭ 316 (+184.68%)
Mutual labels:  arm64, aarch64
tensorflow-aarch64
Compiled tensorflow for aarch64 architecture
Stars: ✭ 20 (-81.98%)
Mutual labels:  arm64, aarch64
Ubuntu64 Rpi
适用于树莓派3b/3b+的64位系统.
Stars: ✭ 652 (+487.39%)
Mutual labels:  arm64, aarch64
Docker Cloudflare Ddns
A small amd64/ARM/ARM64 Docker image that allows you to use CloudFlare as a DDNS / DynDNS Provider.
Stars: ✭ 467 (+320.72%)
Mutual labels:  arm64, aarch64
simdutf8
SIMD-accelerated UTF-8 validation for Rust.
Stars: ✭ 426 (+283.78%)
Mutual labels:  arm64, aarch64
Libnx
Library for Switch Homebrew
Stars: ✭ 908 (+718.02%)
Mutual labels:  arm64, aarch64
fdtd3d
fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support for x86, arm, arm64 architectures
Stars: ✭ 77 (-30.63%)
Mutual labels:  arm64, aarch64
LogoRRR
A log viewer which visualises log events such that it is easy to identify problems or events of interest. This app was implemented using Scala and JavaFX, GluonHQ toolchain and GraalVM as platform.
Stars: ✭ 40 (-63.96%)
Mutual labels:  maven, aarch64
DLARM
DLARM: Dissertation for Computer Science Masters Degree at UFRGS
Stars: ✭ 24 (-78.38%)
Mutual labels:  arm64, aarch64
Raspberry Pi Cross Compilers
Latest GCC Cross Compiler & Native (ARM & ARM64) CI generated precompiled standalone toolchains for all Raspberry Pis. 🍇
Stars: ✭ 261 (+135.14%)
Mutual labels:  arm64, aarch64
docker-dns-ad-blocker
A lightweight dnsmasq DNS server to block traffic to known ad servers with optional DNSCrypt support. Supports x86_64 and Raspberry Pi (armhf).
Stars: ✭ 78 (-29.73%)
Mutual labels:  arm64, aarch64
tensorflow-serving-arm
TensorFlow Serving ARM - A project for cross-compiling TensorFlow Serving targeting popular ARM cores
Stars: ✭ 75 (-32.43%)
Mutual labels:  arm64, aarch64
Raspberry Pi Pcie Devices
Raspberry Pi PCI Express device compatibility database
Stars: ✭ 444 (+300%)
Mutual labels:  arm64, aarch64
Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+636.94%)
Mutual labels:  arm64, aarch64

目录

概述

本文列出了我在我的YouTube视频: M1性能测试里跑过的测试命令,用于比较我的M1 Macbook Ai和我的Intel Core i9 Macbook Pro的编译速度。

测试1和测试2使用的是JDK-x64, 在两台机器上都运行了。

测试3和测试4使用的是JDK-aarch64, 只在M1 Macbook Air上运行。

先决条件

在你运行这些测试之前,确保你的机器安装了JDK和Maven。

Zulu JDK-aarch64的下载地址在这个页面。在我的M1 Macbook Air上, 该JDK被安装在了如下路径:

/Library/Java/JavaVirtualMachines/zulu-16.jdk

(2020年12月15日更新: 为了让对比测试更加地公平, 最好在i9 Macbook Pro上也使用Zulu JDK, 并且使用和在M1 Macbook Air上版本相同的Zulu JDK。在录制视频时, 我在i9 Macbook Pro上使用的JDK不是Zulu JDK。今天早些时候,我在两台机器上都安装了Zulu Java 8, 又做了一次对比测试。测试结果与我的YouTube视频里的最终结果高度吻合。)

接下来, 下载一个Java repo,比如Apache Commons Lang。

cd
mkdir -p src/apache
cd src/apache
git clone https://github.com/apache/commons-lang.git
cd commons-lang

测试1: 使用JDK-x64, 运行缺省Maven命令

我在M1 Macbook Air和i9 Macbook Pro上都运行了该测试。

此处我假设你的$JAVA_HOME指向的是JDK-x64。

以下是编译命令。

mvn clean compile

如果遇到Too many files with unapproved license这个错误,加一个参数就能解决,像下面这样:

mvn clean -Drat.skip=true compile

该命令的输出会告诉你编译时长。

测试2: 使用JDK-x64, 运行优化过的Maven命令

我在M1 Macbook Air和i9 Macbook Pro上都运行了该测试。

MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1" \
mvn clean -T 1C -Drat.skip=true compile -offline

解释:

  • -XX:+TieredCompilation -XX:TieredStopAtLevel=1: 加速JVM的启动速度。
  • -T 1C: 为CPU的每个核都分配一个线程。
  • -offline: 不要从远端repos下载, 以确保整个编译过程都在本地进行运算。

测试3: 使用JDK-aarch64, 运行缺省Maven命令

该测试只在M1 Macbook Air上运行。现在你需要把$JAVA_HOME指向JDK-aarch64。

JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home" \
mvn clean -Drat.skip=true compile

测试4: 使用JDK-aarch64, 运行优化过的Maven命令

该测试只在M1 Macbook Air上运行。现在你需要把$JAVA_HOME指向JDK-aarch64,并且在命令中加入优化参数。

JAVA_HOME="/Library/Java/JavaVirtualMachines/zulu-16.jdk/Contents/Home" \
MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1" \
mvn clean -T 1C -Drat.skip=true compile -offline

引用

关注我的频道

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].