Comments (3)
Seems that most of the CPU was coming from the disk manager.
However, I still see an issue (both on windows and linux), where after the download is complete, the CPU is pegged at 13% (windows desktop) or 40% (linux droplet). Interestingly enough, that CPU pegging seems to go away when adding a println statement here https://github.com/GGist/bip-rs/blob/master/bip_peer/src/manager/mod.rs#L335.
I thought it may be due to our usage of Mutex polling in the futures themselves, but switching those out for RefCell didnt make a difference. Additionally, I tried using unsync channels as opposed to the sync channels, and that did nothing as well (though interestingly, it seems the channel capacitys for sync and unsync mean different things, as an unsync capacity of 0 caused the channel to block, but I think thats a separate issue...).
I am going to try and reproduce using just the futures crate, as it may be that tasks are waking up more than they should (though it would be for both unsync and sync, which seems like a stretch).
from bip-rs.
Looks like its an issue with tokio-timer Sleep
notifying us too frequently. Changing our tick duration doesnt seem to have a large effect on the CPU usage for us waking up, perhaps more often than we need to.
Will look in to what we can do to fix this.
from bip-rs.
So I was able to re-produce this very reliably yesterday, but today I can't reproduce it at all. Going to leave it here for a while in case it comes back...
from bip-rs.
Related Issues (20)
- Shared/Reusable Buffer For Block Checksums
- Follow Sink Buffer Conventions For DiskManager
- Extract Compact Ip Parsing Logic To bip_util
- Using bip_utracker HOT 2
- Unable to run bip_dht example HOT 2
- Lifetimes and construction of BencodeMut trees HOT 4
- Accept Two Transport Types In Handshaker
- Add Extensions Info To PeerInfo
- Add Builder For ExtendedMessage
- Support Write Interface For Bencode Encoding HOT 1
- Integrate Hashed Timing Wheel (Data Structure) Into bip_select
- Extract Extended Logic In bip_select Into Separate Module
- Unused mut warning when using ben_map macro HOT 1
- Create BlockIdentifier Message Type HOT 1
- Re-Evaluate Backpressure In bip_select
- Setters of `MetainfoBuilder` incorrectly works with result of `BTreeMap::insert` method. HOT 4
- How to make a bittorent dht crawler with using bip-rs
- Support arbitrary data in DHT (BEP 44)?
- Publish a new version of bip_metainfo?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bip-rs.