タグ

LINQに関するKircheのブックマーク (10)

  • 今からできる、速くシンプルに LINQ を書くためのコツ 3 個 - wiprog

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

    今からできる、速くシンプルに LINQ を書くためのコツ 3 個 - wiprog
    Kirche
    Kirche 2018/04/20
  • 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
  • neue cc - 複数の値とC# 5.0 Async再び、或いはAsyncEnumerableへの渇望とRx

    以前にReactive Extensions + asyncによるC#5.0の非同期処理では、単体の値であったらasync、複数の値であったらIObservable<T>が使い分け、とかかんとかと言ってましたが、当にそうなの?もしくは、そもそも複数の値のシチュエーションって分かるような分からないようななのだけど?などなどと思ったりする昨今を如何様にお過ごしでしょうか。というわけで、今回はグッとこの部分に深く迫ってみましょう。 同期的なシチュエーション さて、例、なのですけれど、データベースで行きましょう。生DataReaderを転がしてます。 // 接続文字列に Asynchronous Processing=true は非同期でやるなら欠かさずに const string ConnectionString = @"Data Source=.;Initial Catalog=Advent

  • 技術解説 – LINQ – kekyoの丼

    LINQとは、「Language INtegrated Query」の略で、C#やVB.netのソースコード中に、SQL「のような」クエリ構文を記述する事で、複雑なデータ操作を簡単に実現できる構文とライブラリのセットの事です。 実際にはクエリ構文で書く必要は無い(メソッド呼び出しの組み合わせでも実現可能)で、更にメモリ上のデータ操作だけではなく、SQL Serverなどのリモートデータシステムに対しても、同じ構文で直接操作が可能になります。プリプロセッサタイプの埋め込み技術(例:Pro*C)と異なり、コンパイラが構文を直接解釈する事による、様々なメリットを享受できます。 オンメモリで動作する、一番基礎となるLINQを特に「LINQ to Objects」と呼びます。 // 指定された個数の乱数を生成する public IEnumerable<int> GenerateRandomNumbe

    技術解説 – LINQ – kekyoの丼
  • Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方

    【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計UnityTechnologiesJapan002

    Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
  • Local Database for Windows Phone - 雑記 - otherwise

    Windows Phone Advent Calendar 14 日目です。 Advent Calendar は後になるほどきついとはよく言ったもので、正直目新しいネタがありません。 そこで、ちょっとズルいですが今日分のセッションアフターフォロー記事から切り出して Windows Phone の Local Database についてまとめてみようと思います。 # MSDN のドキュメントを読みつつ書いたので、あまり検証出来ていない箇所があります。 # 間違え等ありましたら指摘をお願いします。。。 概要 Windows Phone の Local DatabaseSQLCE をベースとした簡易 DB です。 基的には SQLCE 4.0 と同等の機能を有しますが、一部制限があります。 DB ファイルを IsolatedStorage に保管するため、他のアプリケーションからデータに

    Local Database for Windows Phone - 雑記 - otherwise
  • Reactive Extensions再入門 その46「 Reactive Extensions 入門 」 - かずきのBlog@hatena

    ここまで、自分のReactive Extensionsの復習もかねて基的なメソッドの動作を確認するためのプログラムの記録を淡々と書いてきました。わかりにくかったり、図が少なかったり文章が拙かったりするところはあると思いますが、個人的に一区切りだと思ってるところまで書けたので、Blogの記事をまとめてPDFにしたものを公開したいと思います。 Reactive extensions入門v0.1 from 一希 大田 Reactive extensions入門v0.1 過去記事インデックス Reactive Extensions再入門 その1 Reactive Extensions再入門 その2「IObservableインターフェースとIObserverインターフェース」 Reactive Extensions再入門 その3「IObservableのファクトリメソッド」 Reactive Ex

    Reactive Extensions再入門 その46「 Reactive Extensions 入門 」 - かずきのBlog@hatena
  • よくあるコーディングパターンと LINQ to Objects の対応付け - 予定は未定Blog版

    あると便利ですよね、ということで書いてみた。 よくあるコーディングパターンには yield とか使ってないです。 こっちの方がよくありそうでしょ? Select 全ての要素に何らかの処理を行いたいときに使用します。 // よくあるコーディングパターンその1 // 全ての要素を2倍するメソッド public IEnumerable<int> DoubleAll(int[] target) { var result = new int[target.Length]; for (int i = 0; i < target.Length; i++) { result[i] = target[i] * 2; } return result; } // Selectで書き直し public IEnumerable<int> DoubleAll(IEnumerable<int> target) { re

    よくあるコーディングパターンと LINQ to Objects の対応付け - 予定は未定Blog版
  • Entity Framework の俺的まとめ - しばやん雑記

    個人的に超ブームな Entity Framework について、日語情報が少なすぎるので私が知りうる限りの情報をまとめてみました。勘違いしている部分などあると思うので、コメントで突っ込んでもらえるとありがたいです。 Entity Framework とは .NET Framework 3.5 SP1 で追加された新しいデータアクセステクノロジです。正式には ADO.NET Entity Framework と言います。 早い話が O/R マッパーなのですが、.NET 3.5 で追加された LINQ to SQL よりも洗練されたフレームワークとなっています。特徴としては LINQ to SQL が式木(Expression Trees)から Transact-SQL を生成していたのに対して、Entity Framework では Entity SQL と呼ばれる SQL ライクなクエリ

    Entity Framework の俺的まとめ - しばやん雑記
  • neue cc - はぢめてのWindows Phone 7でのデータベース(Linq to Sql)

    Windows Phone 7に新しいSDKが来ました!9月頃リリースという話のMangoアップデート(Windows Phone 7.1)対応SDK。まだベータですが色々触れます。そしてついにデータベースが搭載されました。というわけで軽く触ってみました。 Code First フツーだとSQLを書いてデータベースの定義を用意しなければならないところですが、WP7でのデータベースプログラミングにおいて、SQLは不要です。と、いうよりも、そもそも使えません。データベース体(SQLCE)や、データベースにSQLを発行するクラス(ADO.NET)はMicrosoft.Phone.Data.Internalに格納されており、Internalという名のとおり、外から触ることは出来ません。ではどうするか、というと、WP7ではデータベースはLinq to Sqlを介して操作します。 じゃあテーブル定義

  • 1