タグ

Linqに関するmslGtのブックマーク (6)

  • C# の Linq が python の2倍遅い、は嘘 - Qiita

    C#でLinqを使うよりPythonの方が2倍速かったのでベンチマークをしてみた うん、まあ Linq はそこそこリッチなので、こういう使い方したらそこそこ遅くなるよね。特に GroupBy は遅い。 でもそんなことより ToList() しまくってて遅延実行の意味なし。最初の結果テーブルで C# が3倍ほど遅いのはほぼこれのせいじゃないかな。 あとシリアライザが Newtonsoft。そりゃ遅いよね、って感じ。最近のスタンダード、Utf8Json を使います。 とりあえず自分の環境で python3.6 動かした結果を貼る: 0.8537077903747559[sec] 0.8066554069519043[sec] 0.8596947193145752[sec] 0.83 秒くらいですかね? んで C# 、愚直に書いてみる。 using System; using System.Li

    C# の Linq が python の2倍遅い、は嘘 - Qiita
    mslGt
    mslGt 2018/05/01
  • 今からできる、速くシンプルに LINQ を書くためのコツ 3 個 - wiprog

    たびたび 「LINQ が遅い」 と言われているのを見かけるので、どうやったら速く書けるのか、どう書くと遅くなるのかについてまとめてみます。 LINQ は非常に強力で、ぼくが出会った「LINQ 遅い」のほとんどは、 実装の仕方がまずいものばかりです。 LINQ はいくつかポイントを意識するだけでかなり安全に速く書けるようになります。 いろいろとポイントはありますが、 3 つだけに絞って書いてみました。 私自身 C# 書き始めてようやく 2 年たったぐらいなので、間違っているところはバシバシご指摘いただけると嬉しいです。 こちらの記事も参考になるので、合わせてご覧ください。 blog.okazuki.jp 「LINQ 遅い」の 3 パターン まあ LINQ は速くないこともたまにあるのですが、大抵の場合は十分なパフォーマンスを提供してくれます。 「LINQ が遅い」 と言う時はだいたい以下のど

    今からできる、速くシンプルに LINQ を書くためのコツ 3 個 - wiprog
    mslGt
    mslGt 2018/05/01
  • [C# .Net] SelectとSelectManyの使い分け。そしてforeachでインデックスを使う方法。 | TOACH

    LINQに慣れないうちは自分の思ったとおりの出力が得られないもの。 中でも、コレクションの中のコレクションから要素を取り出す操作が鬼門になるだろうか。 そういう操作はSelectManyで一発OKなのだけれど、Selectを使ってしまうと頭を抱えることになる。 今回は、SelectMany、それからSelectとの使い分けを考える。 Selectの使い方 以前、TOACHで紹介したSelectの使い方をおさらいしておこう。ちなみにその記事ではLINQの入り口になる基的なものを紹介しているから、入門編としてどうぞ。 Hello LINQ world. 野暮ったいC#コードから卒業したいアナタへ。LINQ 基の4つ。 作例では、映画のタイトルの文字列配列 (awesomeMovies) に文字を付け足し、続編タイトルにする(タイトルに2をつける)場合を考える。var jaws = "JAW

    [C# .Net] SelectとSelectManyの使い分け。そしてforeachでインデックスを使う方法。 | TOACH
    mslGt
    mslGt 2015/10/24
  • Unityで活かせるLINQの底力!! (前編)

    Unity3Dの公式マニュアル翻訳やってる人がiPhone, Androidでのゲームアプリ開発について記事にしています。Unity3Dでの開発をメインにAsset Storeで入手できるNGUI, Playmakerや, Oculus Riftなど作者サイトからの英語情報を翻訳していきます 最近、アセットストアでダウンロードしたコードに たまたま、LINQ を活用しているものがあって興味をもった。 そして「なるほどLINQ で書くと美しく見やすいコードを書ける場合があるのだ!」と素直に感じた。 調べてみたら、一般論としてUnity でどのような場合に活用すると良いか、Unity Gems に良い記事があったので2 回の投稿に分けて翻訳を紹介させてもらいたい。 長文ゴメン!!でもLINQをUnityでどう活用するか知らなかった人は覚えとくと、きっと役立つぜ! http://unitygem

  • C# によるプログラミング入門 [データ処理] LINQ

    概要 Ver. 3.0 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる新機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 LINQ を用いることで、様々なタイプのデータソースに対する検索や操作を、 共通の構文で行うことができます。 IEnumeable を実装するコレクションクラスに対するもの(LINQ to Object)や、 XML に対するもの(LINQ to XML)、 それに、リレーショナルデータベースサーバに対する SQL クエリを生成するもの(LINQ to SQL)などがあります。 LINQ には以下のような利点があります。 オブジェクト指向言語らしい書き方でデータベースへの問い合わせができます。 in-memor

    C# によるプログラミング入門 [データ処理] LINQ
    mslGt
    mslGt 2014/08/17
  • UnityのiOSビルドで使うとエラーになるLINQ拡張メソッドのメモ - 好き勝手に・げーあにん?

    UnityのiOSビルドでLINQ拡張メソッドを使っていると、実行時に ExecutionEngineException: Attempting to JIT compile method 'System.Linq.Enumerable:Sum (System.Collections.Generic.IEnumerable`1,System.Func`3)' while running with --aot-only. みたいなエラーが出るものと*1、普通に使えるものがある。 で、いちいち選別するのが面倒なので、使える使えないを調べずにLINQのメソッドを避けてたんだけど、やっぱりCountとか使えるものは使いたくなったので、使用頻度の高めのものだけ調べた。 調べている途中で、同じ System.Linq.Enumerable のメソッドでも、classのListでは使えなくても、配列やs

    UnityのiOSビルドで使うとエラーになるLINQ拡張メソッドのメモ - 好き勝手に・げーあにん?
  • 1