[Haskell-iPhone] FFI calls into Haskell taking a long time

Manuel M T Chakravarty chak at justtesting.org
Wed Apr 6 23:45:25 UTC 2016


Did you try on the device? The simulator is a strange beast and its performance may not be representative of what you get on a real device.

Manuel

> James Parker <jp at jamesparker.me>:
> 
> Hi,
> 
> I’m exporting a Haskell function that generates RSA keys for an iOS application. I’m using the crypto-pubkey and crypto-random packages. Unfortunately, the key generation is taking an extremely long time (around 5 minutes) when run in the simulator (XCode 7.2.1). When running Haskell code through Criterion, key generation only takes 110ms. When benchmarking a c program that links the Haskell FFI library (on my x86 laptop), key generation takes about 130ms. 
> 
> Does anyone have any ideas why this is so much slower on the simulator? I thought maybe there was an issue with running out of randomness, so I tried creating a fixed seed by using `createTestEntropyPool`, but this did not make any difference. I’ve included the relevant key generate function below. 
> 
> gen :: MonadRandom m => m (RSA.PublicKey, RSA.PrivateKey)
> gen = withCPRG $ \prg -> return $ RSA.generate prg 256 65537
> 
> instance MonadRandom IO where
>    type MonadCPRG IO = SystemRNG
> 
>    withCPRG f = do
>        entropy <- createEntropyPool
>        (res, _) <- f $ cprgCreate entropy
>        return res
> 
> I’d appreciate any help.
> 
> Thanks!
> 
> James
> _______________________________________________
> iPhone mailing list
> iPhone at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/iphone



More information about the iPhone mailing list