ligi / IPFSDroid

Android App for the InterPlanetary File System(IPFS)
GNU General Public License v3.0
304 stars 73 forks source link

Speed Optimizations #23

Open NateWickstrom opened 7 years ago

NateWickstrom commented 7 years ago

Two recommendations to make things faster.

  1. Gzip the bins and then unzip during download. The downloadFile function in the IPFSDaemon would look like:

    val zipped = responseBody.source()
    val source = GzipSource(zipped)
    
    val buffer = Okio.buffer(Okio.sink(getBinaryFile()))
    
    var total = 0L
    var cnt = 0L
    
    do {
        cnt = source.read(buffer.buffer(), 1024)
        total += cnt
    
        val size = cnt / 1024
        progressDialog.setMessage("$size kB")
    } while (cnt > 0)

    https://github.com/ligi/IPFSDroid/blob/master/app/src/main/java/org/ligi/ipfsdroid/IPFSDaemon.kt#L74-L88

  2. Compile the bins with target android-21: xgo -go 1.8.3 --targets=android-21/* ./cmd/ipfs, so you get the additional arm64 bin, which is way faster when applicable (most newer devices):

ligi commented 7 years ago

Thanks for the suggestions! Sorry I did not see this earlier - especially 2 souds like a great idea!

issueth[bot] commented 6 years ago

This issue now has a bounty-address via issuETH.

Your bounty-address is d129b8a0bccfffc2c84157beca267d03a71c1995
Watch on rinkeby
Watch on main