からのJavaとClojureの中で同じ速度をJavaコードを実行しますコンパイルされました。 Clojureから同じJavaパフォーマンスを呼び出す方法はありますか?それともいつもより遅くなるのでしょうか?は、私は、次のコードを持っているJavaの
0
A
答えて
8
ここで必要以上のタイプヒントがあります。あなたが持っているものは、私が彼らが何か良いことをしているとは完全には分からないように置かれています。実際にはlet
の値ではなく、 。つまり、(let [^Observer obs (...)] ...)
ではなく、(let [obs ^Observer (...)] ...)
です。多くの場合、これらは両方とも機能しますが、前者はもっと安全です。また、をproxy
よりも強く選択することをお勧めします。これは可能性がある場合はproxy
が推奨されません。
私はあなたが使用しているニューラルネットワークライブラリは、あなたがcreateStockMarketNeuralNetwork
への引数に単一typehintが必要な場合がありますが、残りはあなたのコードを読み取る誰を混同する以外に何の目的で配信されていませんので、何かわからない - それはです正確でないヒントを選択した場合、余分な型ヒントがコンパイラを混乱させ、より遅いコードを書き込む可能性さえあります。したがって、コード全体に無作為に配置するのではなく、reify
アプローチに切り替えて、*warn-on-reflection*
をtrueに設定し、もしあれば何が反映されているかを確認してください。以下はreify
と、このコードのバージョンであり、私が知っているすべてtypehintsを削除した後は全く違い行いません:あなたが言うように
(let [obs (reify java.util.Observer
(update [this o arg]
(println arg)))
^StockPriceNeuralNetwork network (NeuralNetworkFactory/createStockMarketNeuralNetwork ^java.util.List [obs])]
(.trainForTime network))
関連する問題
- 1. は、私は次のコードを持っているJavaの
- 2. 間違い、私は次のコードを持っているのjava
- 3. は、私は次のJavaコードを持っているメモリ
- 4. は、私は次のJavaコードを持っている相対パス
- 5. Javaは私がプリミティブラッパークラスを持って、次のコード持ってカッコ
- 6. Javaの春、私は次のコードを持っているFTPサーバ
- 7. コードは、私は次のコードを持っている別の1
- 8. Angular2コードは、私は次のコードを持っているインラインテンプレートエラーに
- 9. 私は次のコードを持ってクリック
- 10. 私は次のコードを持っている私のルートユーザーディレクトリ
- 11. 私は、次のPHPコードを持っている私のデータベース
- 12. jqueryのは、私は次のコードを持っているのdiv
- 13. は、私は次のコードを持っているのコンストラクタ
- 14. レジストリのリダイレクトは、私は次のコードを持っているHKEY_CURRENT_USER
- 15. は、プログラム私は次のコードを持っているのDataTable
- 16. は、私は次のコードを持っているのPython
- 17. Haskellは、私は次のコードを持っているのInt
- 18. は、私は次のPythonコードを持っているのPython
- 19. は、私は次のコードを持っているエンティティの作成
- 20. は、私はPythonで、次のコードを持っているのpython
- 21. は、私は次のコードを持っているwxPythonの
- 22. は、私は次のコードを持っているjQueryのコールバック
- 23. は、私はPythonで、次のコードを持っているNode.jsの
- 24. アレイのFileInfo []は、私は次のコードを持っているファイル
- 25. ブロックフローの実行は、私は、次のコードを持っている
- 26. は、私は次のコードを持っている特定のワークブック
- 27. JSのdocument.createElementは、私は次のコードを持っている
- 28. は、私は次のコードを持っているbashの
- 29. jQueryのは、私は次のコードを持っている
- 30. ( ")私は次のコードを持っているはずのjQuery
、タイプヒントが混乱してし... – sw1nn