You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/03/15 09:36:28 UTC

[GitHub] markusthoemmes commented on issue #3396: Self-generate random strings without going through a UUID.

markusthoemmes commented on issue #3396: Self-generate random strings without going through a UUID.
URL: https://github.com/apache/incubator-openwhisk/pull/3396#issuecomment-373315588
 
 
   Based on a discussion with @rabbah I benchmarked the code (and vastly improved it). Here are some numbers:
   
   ```scala
   object Bench {
     def test(name: String, count: Int, generator: => String) = {
       println(s"running $name")
       val start = System.currentTimeMillis()
       Seq.fill(count)(generator)
       println(s"took ${System.currentTimeMillis() - start}")
     }
   
     def main(args: Array[String]): Unit = {
       val secure = new scala.util.Random(new SecureRandom())
   
       println("warmup")
   
       test("uuids", 10000, UUIDs.randomUUID().toString.filterNot(_ == '-'))
       test("randomHex", 10000, RandomString.generateHexadecimal(32))
   
       test("uuids", 10000000, UUIDs.randomUUID().toString.filterNot(_ == '-'))
       test("randomHex", 10000000, RandomString.generateHexadecimal(32))
     }
   }
   ```
   
   ```
   warmup
   running uuids
   took 142
   running randomHex
   took 181
   running uuids
   took 41861
   running randomHex
   took 31486
   ```
   
   You can see that the `randomHex` code is indeed faster now. This is more about that code not allocating as much garbage though.
   
   @rabbah WDYT? I'm a bit unsure if this is even worth it 😁.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services