Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rTorrent: Upgrade to v7.0 #418

Merged
merged 1 commit into from
Dec 25, 2024
Merged

rTorrent: Upgrade to v7.0 #418

merged 1 commit into from
Dec 25, 2024

Conversation

stickz
Copy link
Contributor

@stickz stickz commented Dec 24, 2024

Version 7.0 Release

This a major new release that provides the option to replace xmlrpc-c with tinyxml2. Tinyxml2 is 2 to 3 times faster for smaller responses and up to 30 times faster for large responses than it's xmlrpc-c counterpart. It is fully compatible with ruTorrent. It results in a significant reduction of in overhead, by eliminating the requirement for xmlrpc-c and it's stack of dependences.

To use simply configure rTorrent --with-xmlrpc-tinyxml2 instead of --with-xmlrpc-c. This will be the default option in the near future!

Tinyxml2 Benchmarks

xmlrpc-c

Benchmark               Time             CPU   Iterations
---------------------------------------------------------
small_response       3417 ns         3413 ns       204332
large_response   46159260 ns     46074301 ns           15

tinyxml2:

Benchmark               Time             CPU   Iterations
---------------------------------------------------------
small_response       1595 ns         1593 ns       462388
large_response    1512614 ns      1509299 ns          463

What's Changed

Full Changelog: stickz/rtorrent@v6.3-0.9.8-0.13.8...v7.0-0.9.8-0.13.8

@stickz stickz requested a review from crazy-max as a code owner December 24, 2024 19:05
@stickz
Copy link
Contributor Author

stickz commented Dec 24, 2024

@crazy-max Could we get a new release for Alpine v3.21 with GCC 14 and rTorrent v7.0 with tinyxml2? These are major improvements for this docker container. I've done all the required testing. I resolved LTO & ruTorrent compatibility issues.

@crazy-max
Copy link
Owner

Thanks! Just merged #417, can you rebase?

## Version 7.0 Release
This a major new release that provides the option to replace xmlrpc-c with tinyxml2. Tinyxml2 is 2 to 3 times faster for smaller responses and up to 30 times faster for large responses than it's xmlrpc-c counterpart. It is fully compatible with ruTorrent. It results in a significant reduction of in overhead, by eliminating the requirement for xmlrpc-c and it's stack of dependences.

To use simply configure rTorrent `--with-xmlrpc-tinyxml2` instead of `--with-xmlrpc-c`. This will be the default option in the near future!

## Tinyxml2 Benchmarks
xmlrpc-c
```
Benchmark               Time             CPU   Iterations
---------------------------------------------------------
small_response       3417 ns         3413 ns       204332
large_response   46159260 ns     46074301 ns           15
```

tinyxml2:
```
Benchmark               Time             CPU   Iterations
---------------------------------------------------------
small_response       1595 ns         1593 ns       462388
large_response    1512614 ns      1509299 ns          463
```

## What's Changed
* rTorrent: Add tinyxml2 support by stickz in stickz/rtorrent#58
* tinyxml2: Fix commands without targets by stickz in stickz/rtorrent#60

**Full Changelog**: stickz/rtorrent@v6.3-0.9.8-0.13.8...v7.0-0.9.8-0.13.8
@stickz
Copy link
Contributor Author

stickz commented Dec 25, 2024

Thanks! Just merged #417, can you rebase?

Ready to go now.

@crazy-max crazy-max merged commit 00ad36e into crazy-max:master Dec 25, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants