タグ

goとキャッシュに関するyohane00のブックマーク (4)

  • Goで多層キャッシュを実装するときに役立つtips - Gunosy Tech Blog

    こんにちは、メディア事業部所属の石塚(@ij_spitz)です。こちらはGunosy Advent Calendar 2018、4日目の記事です。なお、昨日の記事は@timakinさんのGoで多層キャッシュ実装と@aibouさんのInfrastructure as Codeの心構えでした。 何を書くか全然決めてなかったのですが、昨日@timakinさんがGoでの多層キャッシュの実装ポイントについて書いていたことに加えて、僕も最近業務で多層キャッシュについて取り組んでいたので、Goで多層キャッシュを実装するときに役立つtipsについて書きたいと思います。 ちなみに僕は多層キャッシュのことを多段キャッシュと呼んでいましたが、曖昧さを解消するために記事では多層キャッシュで統一します。 なぜ多層キャッシュを使うのか 多層キャッシュ自体については昨日のブログで既に説明されているので詳細は控えます

    Goで多層キャッシュを実装するときに役立つtips - Gunosy Tech Blog
  • CPUキャッシュがGoのコードに与える影響(翻訳)|TechRacho by BPS株式会社

    繰り返しますが、正確な図はプロセッサモデルによって異なります。ここでは見積もりのため、以下の目安で考えます。メインメモリのアクセスに60ns(ナノ秒)かかり、L1キャッシュへのアクセス速度はその約50倍高速だとします。 さて、プロセッサの世界には「参照の局所性(locality of reference)」と呼ばれる重要な概念があります。プロセッサがメモリ上の特定の場所にアクセスするとき、以下のように予測を立てます。 近い将来、メモリ上の同じ場所にアクセスする可能性が非常に高い これは「時間的局所性(temporal locality)の法則」です 近い将来、メモリ上のその場所からごく近い場所にアクセスする可能性が非常に高い これは「空間的局所性(spatial locality)の法則」です CPUにキャッシュが存在する理由のひとつが、この時間的局所性です。では空間的局所性を高めるにはど

    CPUキャッシュがGoのコードに与える影響(翻訳)|TechRacho by BPS株式会社
  • Go言語のためのキャッシュライブラリを作った - Qiita

    1. はじめに Rapidash というGo用のキャッシュライブラリを公開しました。 以前 https://qiita.com/goccy/items/a54af6db3b8623e90c38 で紹介した Octillery 同様、弊社の負荷対策用ライブラリになります。 キャッシュというとコンテキストによって用途は様々ですが、 Rapidash はアプリケーションサーバの応答性能を向上させるために、主にデータベースの負荷分散を目的として開発したライブラリになります。 主な機能は以下のようなものです。 検索しか行わないテーブルのデータをアプリケーションサーバ起動時にデータベースからすべて吸い上げ、インデックスの定義に従ってメモリ上に B+Tree 構造で展開する。検索時は範囲検索もできる 読み書きを行うテーブルのレコードを memcached や Redis といったキャッシュサーバに格納し

    Go言語のためのキャッシュライブラリを作った - Qiita
  • GoのInterfaceとは何者なのか #golang #go - niconegoto Blog

    はじめに これはGo Advent Calendar 2017 - Qiitaの3日目の記事です。 当初はコンパイラの最適化を話すつもりだったのですが… GoConでParallel Compilationの話をしたからコンパイラ最適化のところをアドベントカレンダーで出そうと思ってたんだけど結構内容が濃すぎてなんか間に合わなさそうな雰囲気を感じていているのでどうしようか考えている— 井手康貴/Koki Ide (@niconegoto) 2017年12月2日 こんな感じでつらいなということになり、アンケートを行いました。 というわけで何が読みたいのかアンケート— 井手康貴/Koki Ide (@niconegoto) 2017年12月2日 その結果、上記の通りInterfaceとは何なのかの記事を書くことになりました。(異論は認めません) コンパイラ最適化に関しては30%くらい書き進めてい

    GoのInterfaceとは何者なのか #golang #go - niconegoto Blog
  • 1