Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-12-25 07:40:13 +01:00
Switch to zlib-ng
zlib-ng boasts higher throughput than regular zlib, by combining patches from Cloudflare, zlib, and ARM's improvements to zlib along with a more modern codebase. Profiling consistently shows that compression is the largest CPU expense by far, so even a minor speed-up here is significant.
Dieser Commit ist enthalten in:
Ursprung
63dcc56735
Commit
e21c33d435
4
.gitignore
vendored
4
.gitignore
vendored
@ -85,3 +85,7 @@ server-icon.png
|
||||
/bin/
|
||||
run/
|
||||
plugins/
|
||||
|
||||
### Natives stuff ###
|
||||
natives/mbedtls
|
||||
natives/zlib-ng
|
@ -1,10 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -d zlib-ng ]; then
|
||||
echo "Cloning zlib-ng..."
|
||||
git clone https://github.com/zlib-ng/zlib-ng.git
|
||||
fi
|
||||
|
||||
echo "Compiling zlib-ng..."
|
||||
cd zlib-ng
|
||||
CFLAGS="-fPIC -O3" ./configure --zlib-compat --static
|
||||
make clean && make
|
||||
cd ..
|
||||
|
||||
# Modify as you need.
|
||||
MBEDTLS_ROOT=mbedtls
|
||||
CFLAGS="-O3 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -fPIC -shared"
|
||||
gcc $CFLAGS -lz src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
||||
src/main/c/jni_zlib_common.c -o src/main/resources/linux_x64/velocity-compress.so
|
||||
gcc $CFLAGS -Izlib-ng src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
||||
src/main/c/jni_zlib_common.c zlib-ng/libz.a -o src/main/resources/linux_x64/velocity-compress.so
|
||||
gcc $CFLAGS -I $MBEDTLS_ROOT/include -shared $MBEDTLS_ROOT/library/aes.c $MBEDTLS_ROOT/library/aesni.c \
|
||||
$MBEDTLS_ROOT/library/platform.c $MBEDTLS_ROOT/library/platform_util.c src/main/c/jni_util.c src/main/c/jni_cipher.c \
|
||||
-o src/main/resources/linux_x64/velocity-cipher.so
|
@ -1,12 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -d zlib-ng ]; then
|
||||
echo "Cloning zlib-ng..."
|
||||
git clone https://github.com/zlib-ng/zlib-ng.git
|
||||
fi
|
||||
|
||||
echo "Compiling zlib-ng..."
|
||||
cd zlib-ng
|
||||
CFLAGS="-fPIC -O3" ./configure --zlib-compat --static
|
||||
make clean && make
|
||||
cd ..
|
||||
|
||||
# Modify as you need.
|
||||
MBEDTLS_ROOT=mbedtls
|
||||
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
|
||||
CFLAGS="-O3 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/darwin/ -fPIC -shared"
|
||||
|
||||
clang $CFLAGS -lz src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
||||
src/main/c/jni_zlib_common.c -o src/main/resources/macosx/velocity-compress.dylib
|
||||
clang $CFLAGS -Izlib-ng src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
||||
src/main/c/jni_zlib_common.c zlib-ng/libz.a -o src/main/resources/macosx/velocity-compress.dylib
|
||||
clang $CFLAGS -I $MBEDTLS_ROOT/include -shared $MBEDTLS_ROOT/library/aes.c $MBEDTLS_ROOT/library/aesni.c \
|
||||
$MBEDTLS_ROOT/library/platform.c $MBEDTLS_ROOT/library/platform_util.c src/main/c/jni_util.c src/main/c/jni_cipher.c \
|
||||
-o src/main/resources/macosx/velocity-cipher.dylib
|
@ -8,7 +8,7 @@ void JNICALL
|
||||
check_zlib_free(JNIEnv *env, z_stream *stream, bool deflate)
|
||||
{
|
||||
int ret = deflate ? deflateEnd(stream) : inflateEnd(stream);
|
||||
char *msg = stream->msg;
|
||||
const char *msg = stream->msg;
|
||||
free((void*) stream);
|
||||
|
||||
switch (ret) {
|
||||
|
@ -33,7 +33,7 @@ Java_com_velocitypowered_natives_compression_NativeZlibDeflate_init(JNIEnv *env,
|
||||
if (ret == Z_OK) {
|
||||
return (jlong) stream;
|
||||
} else {
|
||||
char *zlib_msg = stream->msg;
|
||||
const char *zlib_msg = stream->msg;
|
||||
free(stream);
|
||||
switch (ret) {
|
||||
case Z_MEM_ERROR:
|
||||
|
@ -32,7 +32,7 @@ Java_com_velocitypowered_natives_compression_NativeZlibInflate_init(JNIEnv *env,
|
||||
if (ret == Z_OK) {
|
||||
return (jlong) stream;
|
||||
} else {
|
||||
char *zlib_msg = stream->msg;
|
||||
const char *zlib_msg = stream->msg;
|
||||
free(stream);
|
||||
switch (ret) {
|
||||
case Z_MEM_ERROR:
|
||||
|
Binäre Datei nicht angezeigt.
Binäre Datei nicht angezeigt.
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren