.NETを使用して適切なアルゴリズムコーディングを行う方法を模索していました(たとえば、強力な型チェック、演算子のオーバーロード、ラムダ、汎用アルゴリズムが欲しいなど)。私は通常、C++でアルゴリズム(主に画像のプロジェクション)を書いています。 F#は言語としてはかなり面白いようですが、少し弾きましたが、非常に遅いようです。私はいくつかの配列操作をした最も簡単なテストとして - イメージの>明るさの増加: - より複雑なアルゴリズムのためにさらに悪化F#コードの最適化、またはそれは本当に遅いですか?
let r1 = rgbPixels |> Array.map (fun x -> x + byte(10))
少なくとも8倍の比較C++実装よりも遅くなるの要因であると思われます例えば2D畳み込み。 もっと速い方法があるのですか、特定のコンパイラ設定が欠けていますか(はい、最適化を使ってリリースをビルドしています...)? 私は素晴らしいと高い抽象的な支払いをしたいですが、そのようなオーバーヘッドはいいです(私は8コアを補うために並列化する必要があります:)) - 少なくともそれはさらに学ぶための動機を破壊する...私の他の私の重い藻類をC++で残し、C++とのインタフェースを取ることになりますが、管理されたラッパーのメンテナンスはかなり負担になります。
インライン展開が可能ですが、 'byte'の呼び出しを' 10uy'に置き換えることで開始できます。 – Daniel
C + +の実装を[ideone](http://ideone.com/)に投稿することができますか? – Daniel
[これらの結果](http://ideone.com/Z4Gvj)はあなたのものに匹敵しますか? – Daniel