並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 438件

新着順 人気順

heapの検索結果281 - 320 件 / 438件

  • ここが大変だよ、JavaのGC/メモリ管理

    Webシステムを安定稼働させるには、考慮しなければならないことは数々存在する。システムの適切なサイジングを行うことも、その1つだ。 今回は、その中でもJavaVMのメモリのサイジング(見積もり)とGC(ガベージ・コレクション)に着目して説明する。 現象の見え方 今回は、以下の問題についての話だ。 メモリサイジングをミスした場合、業務ピーク時のGCの多発や長期化からこの現象に陥る場合がある。CPU利用率が100%に張り付いて性能が出ない場合は、GCが原因かを疑う必要がある。その場合、まずはGCログを参照し、GCの処理時間や発生頻度から1分ごとのGC処理の占有率を確認してみるとよい。 占有率が大きい場合、アプリケーションの処理やメモリのサイジングを見直す必要がある。以降では、GCを考慮したメモリのサイジングについて説明する。 JavaVMのメモリ空間はどうなっているのか 初めに、Cosmine

      ここが大変だよ、JavaのGC/メモリ管理
    • Go のライトバリアに関するバグを修正した話 : DSAS開発者の部屋

      Goのランタイムのバグを踏んで解決しました。解決までの過程を記事にします。 同じようなランタイムのバグを踏んで、小さい再現コードを作れない場合の参考にしてください。 自分のプログラムを疑う あるSlackチャンネルで Go で書かれたサーバーのクラッシュが話題になっているのを見つけました。その時に共有してもらったトレースバックです。 runtime: pointer 0xc007b8af97 to unused region of span span.base()=0xc004000000 span.limit=0xc004002000 span.state=1 fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?) runtime stack: runtime.throw(0xc046ca,

        Go のライトバリアに関するバグを修正した話 : DSAS開発者の部屋
      • F-Secure : News from the Lab

        Thank you for your interest towards F-Secure newsletter. You will shortly get an email to confirm the subscription.

        • inforno :: Python2.6変更点まとめ

          Python2.6きましたね。ということで、自分用にも主な変更点メモ。なぐり書きなのでミス多いかも。個人的な注目部分は with文 multiprocessing itertoolsへのメソッド追加 ABCの導入 クラスデコレータの導入 ネットワーク系ライブラリ(http,ftp,telnet..etc)でタイムアウトが設定できるようになった。 あたりですかね。ではどうぞ。 Python 3.0由来の変更点 複素数へオブジェクトを変換する __complex__ メソッド。 例外補足のためのもう一つ書き方: except TypeError as exc build-inの reduce() に加え、 functools.reduce の追加。(3.0では reduce はfunctools経由でしか使えない) 3.0では他にもbuild-in関数に変更がある。3.0互換のコードを書きたい

          • Javaパフォーマンスチューニングのルール

            本記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび本記事の筆者が独自の判断のもとに加筆・修正したものです。 この連載では、Javaアプリケーションのパフォーマンスチューニングについて、さまざまなテクニックやツールの使い方を紹介していきます。連載の第1回では、パフォーマンスチューニングにおける基本的ルールや、HPが提供する各種のJavaパフォーマンス・ツールの使い方を説明します。なお、今後の連載では、JVMレベルにとどまらず、OSのカーネル・パラメータやネットワーク・パラメータのレベルでのチューニング方法も解説します。また、より高度なチューニング技法として、JVMのガベージ・コレクションやスレッド競合に注目する方法も紹介する予定です。 連載予定 第1回 Javaパフォーマンスチューニングのルール 第2回 Javaのガベージ・コレクション

              Javaパフォーマンスチューニングのルール
            • OutOfMemoryError発生! その解決への近道とは

              これらの情報を基に、OutOfMemoryErrorの障害発生原因を探ることとなる。 障害調査~メモリ領域を切り分ける~ まずは、GCログやOutOfMemoryErrorのエラー情報から、「Javaのどのヒープ領域(Javaヒープ、Permanentヒープ、Cヒープ)でOutOfMemoryErrorになっているか」「どれだけのメモリを確保しようとして失敗したか」を確認する。 前回記事で、OutOfMemoryのエラー情報からどの領域でメモリ不足が発生しているかを見分けるポイントについては紹介した。例えば、以下のような場合には(*1)からJavaヒープでメモリが不足していることが分かる。 java.lang.OutOfMemoryError: Java heap space <=======【*1】 at java.nio.CharBuffer.wrap(CharBuffer.java:

                OutOfMemoryError発生! その解決への近道とは
              • ざっくりとしたZigの紹介

                BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);

                  ざっくりとしたZigの紹介
                • asm.js

                  Working Draft — 18 August 2014 Latest version: http://asmjs.org/spec/latest/ Editors: David Herman, Mozilla, <dherman@mozilla.com> Luke Wagner, Mozilla, <luke@mozilla.com> Alon Zakai, Mozilla, <azakai@mozilla.com> Abstract This specification defines asm.js, a strict subset of JavaScript that can be used as a low-level, efficient target language for compilers. This sublanguage effectively describes

                  • Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog

                    はじめに こんにちは。リアーキテクティングチームの髙橋と申します。 この記事では、アンドパッドの施工管理サービスで利用している Ruby をバージョンアップしたときに発生したメモリ使用量の問題の発生から解決までをお話しします。 Ruby のバージョンアップ(3.0 -> 3.2) アンドパッドでは昨年 2023 に、施工管理サービスで利用している Ruby を 3.0 から 3.2 にバージョンアップしました。 バージョンアップ自体は過去に確立済みの手法(詳しくは過去記事をご参照ください)により、粛々と進められリリースされました。 ところがこのリリースから数日後、とある問題が発覚しました。 メモリ増大問題 アプリケーションのリソース使用状況を監視している SRE チームのメンバーから、以下のような連絡がありました。 Ruby バージョンアップのリリース以降、アプリケーションの利用するメモリ

                      Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog
                    • はじめての Java Persistence API

                      はじめての Java Persistence API 2011年12月19日 at 2:03 午後 2件のコメント 今日は、Java Advent カレンダーの一貫で 12/19 分のエントリを記載します。昨日のなぎせさんに続き掲載します。また明日は私の盟友である岡崎さんです。 先日、なぎせさんより、「ProxyパターンとProxyクラスと黒魔術」と題してSQL の事を取り上げていただきました。また私自身、先日岡山のイベントで JPA について登壇したばかりなので、今日は DB つながりということで JPA (Java Persistence API) について岡山の資料を利用しながらご紹介します。 岡山の発表資料の全部はこちらです。 Java でデータベース (DB) 接続をする際、Java で一番最初に DB 接続をサポートした事から、ながく JDBC が利用されてきました。その後、J

                        はじめての Java Persistence API
                      • 砂山のパラドックス - Wikipedia

                        砂山から砂粒を取り去っても依然として砂山のままだが、それから何度も取り続けて最終的に一粒だけが残った時に、その一粒だけを指して「これは砂山である」と言えるのか。 砂山のパラドックス(すなやまのパラドックス、英: paradox of the heap)は、述語の曖昧性から生じるパラドックスである。古典ギリシア語で"heap"を意味する「ソリテス」(σωρίτης、sōritēs)にちなんで[注釈 1]、ソリテス・パラドックス、ソライティーズ・パラドックス(英: sorites paradox)とも呼ばれる。 定義や境界値が明確でなく曖昧な概念をどう扱うかという問題であり、主に論理学の哲学・言語哲学において問題になる。というのも、論理学や数学などの科学においては、全ての概念が明確でなければならず、通常の方法では曖昧な概念を扱えないからである。 歴史とバリエーション[編集] このパラドックスの

                          砂山のパラドックス - Wikipedia
                        • Rustから目覚めるぼくらのゲームボーイ! - undefined

                          Conway氏についてですが、公式にアナウンスがでたようです。ご冥福をお祈り申し上げます。 www.math.princeton.edu 2003年に発売された「Linuxから目覚めるぼくらのゲームボーイ!」というC言語でゲームボーイアドバンスで動作する自作ゲームを作成していく書籍があります。 ゲームボーイアドバンスはARM7TDMIというコアを使用しており、Rustで自作ゲームを作ることも可能となっています。 この記事では「Linuxから目覚めるぼくらのゲームボーイ!」のステップをRustで実施するための準備としてライフゲームが動くまでを書いてみます。 動機は今作っているWasmインタープリタをGBAで動かすことができないかの調査です。(たとえLチカレベルでも)AssemblyScriptとかでGBAのゲームかけたら面白くないですか。 成果物 github.com I succeeded

                            Rustから目覚めるぼくらのゲームボーイ! - undefined
                          • Elasticsearch実運用時の注意点とアンチパターンまとめ - サナギわさわさ.json

                            Elasticsearch実運用時に個人的に気をつけている点をまとめました。 自分でも整理できていない部分がありますので、間違っている点・追加した方が良い点などありましたら教えていただけると非常に助かります。 目次 目次 インデックス・スキーマ設定 スキーマを事前に定義しておく _allの使用は必要な時のみ行う 部分一致検索をしないstringフィールドにはnot_analyzedをつける doc_value:trueをつける できるだけエイリアスを使う 必要に応じてルーティングを行う 本体の設定 ヒープメモリを適切に設定する スワップしないように設定 スプリットブレイン対策を行う field data cacheに上限を与える 検索高速化 Warmerを登録する queryとfilterを使い分ける filterのキャッシュ設定を使い分ける 必要無いフィールドは検索の際に取得しない イン

                              Elasticsearch実運用時の注意点とアンチパターンまとめ - サナギわさわさ.json
                            • Linux perfで快適に計測するためのtips - Qiita

                              これがあるのとないのとでは分かりやすさが全然違うので、perfを使う時は常に入れておくようにすると便利です。 2. --call-graph は fp 以外で使う 上記の問題を解決すると perf record + perf report では何が呼ばれているかおおむね分かることが多いのですが、call graphを出すために perf record -g をすると [unknown] というのが出てきてしまうことがあります。(以降の計測結果はRack::Utils::HeaderHashを使ったRuby VMのベンチをRubyのmasterで走らせたものです) Samples: 38K of event 'cycles:ppp', Event count (approx.): 271180000 Children Self Command Shared Object Symbol - 1

                                Linux perfで快適に計測するためのtips - Qiita
                              • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

                                こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

                                  恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
                                • KOSHIGOE学習帳 - [MySQL] パフォーマンス関連メモ

                                  {{toc_here}} InnoDB パフォーマンスチューニング MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.5.11 InnoDB パフォーマンス チューニング ヒント MySQL :: MySQL 5.1 Reference Manual :: 13.6.13.1 InnoDB Performance Tuning Tips 長過ぎる PRIMARY KEY を避けてディスク領域の無駄遣いを避ける セカンダリインデックス用に余計な領域を使わないよう、長い主キーを避ける 主キーが長い場合、代わりに AUTO_INCREMENT なカラムを主キーとして作成するとよい 補足 MySQL :: MySQL 5.1 リファレンスマニュアル :: 13.5.13 InnoDB テーブルとインデックス構造 MySQL :: MySQL 5.1 Reference Ma

                                  • ホットコーナーの舞台裏

                                    ブログ(iiyu.asablo.jpの検索) ホットコーナー内の検索 でもASAHIネット(asahi-net.or.jp)全体の検索です。 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。 例 中村(show) ki4s-nkmr ウェブ全体の検索 ASAHIネット(http://asahi-net.jp )のブログサービス、アサブロ(https://asahi-net.jp/asablo/ )を使っています。 --- 明日3月21日は、世界ダウン症の日です。 ダウン症は、21番目の染色体が3本あることから、3月21日になっています。 https://jdss.or.jp/wdsd2024/ 世界ダウン症の日2024 特設サイト これに合わせて、海外ドラマ専門チャンネルのAXNが、ダウン症成年が殺人事件の容疑者になってしまう、チリのドラマを一挙放送します。 相

                                    • 手続き脳によるHaskell -- Sorting Algorithms

                                      このページは手続き脳から脱却でいない筆者が、Haskell による各種 ソートティングアルゴリズムを実装してみた結果を紹介するページです。ソート はアルゴリズムの基本ですから、これで Haskell を攻略しようというわけ です。 ところで、Haskell に関するWebページを巡回していると、高階関数やモナド などを複雑に使ったアクロバチックでアブノーマルなコードに出会うことが しばしばあります。書いている超頭の良い人達は自らの変態さ加減が披露出来て 快感なのかもしれませんが、頭の悪い私にはそんなコードは理解できません... orz。 そこで私のページでは次のスローガンでプログラミングを行います 普通にやれ、普通に! そんなわけで「モナドを理解したい」とか常人には不可能な無理難題を期待 している人は他のページを当たってください。筆者自身が分かってないので解説 できません。ごめんなさい。

                                      • Switching from PHP to Go: A Development Case Study

                                        We recently upgraded from PHP to Go for our Face Recognition API architecture. In this article we share why we made the move, how it’s radically improved performance, and some lessons learned along the way. As we strive to be the premier Face Recognition partner to businesses across the world, we constantly improve our platform to upgrade our products and enhance customer experience. And while und

                                          Switching from PHP to Go: A Development Case Study
                                        • マルチテナントにおけるRow Level Securityの具体的な実装と注意点 - そーだいなるらくがき帳

                                          文脈、背景や問題点の説明 マルチテナントを実装するうえで企業情報(以下company)単位で最小限の情報を扱うようにしたいがcompany単位にTableを作ったりDatabaseを作るのはALTERなどの運用が大変。 そこでRLSを採用するために実際の技術検証をした上での注意点と実際の運用について必要な情報をまとめる。 PostgreSQL 14を前提としている 公式ドキュメント CREATE POLICY 必ず一読はすること。 困ったとき、わからないときはまずは公式ドキュメントを都度見ること。 このドキュメントのゴール RLSの概要をつかめる RLSの最低限の注意点を理解し、実装時に罠を踏まない 自分たちでRLSのポリシー自体をメンテナンスすることができ、デバッグできる テーブル構成 create table if not exists company ( id uuid defaul

                                            マルチテナントにおけるRow Level Securityの具体的な実装と注意点 - そーだいなるらくがき帳
                                          • neue cc

                                            MicrosoftからIntroducing Garnet – an open-source, next-generation, faster cache-store for accelerating applications and servicesという記事が今日公開されて、Garnetという新しいインメモリデータストアがOSSとして公開されました。Microsoft ResearchでFASTERを手掛けていたチームによるもので、FASTERはC#実装の高速なキーバリューストアでした。今回のGarnetはその発展形のようなもので、FASTERベースのストレージと、Redis互換のプロトコルによる、インメモリデータストアになっています。詳しくはGarnetのほうのブログA Brief History of Garnetで。GarnetもC#で作られています。 ベンチマークによると、Re

                                            • squid.conf squid 設定ファイル 日本語 Proxy キャッシュ

                                              これは、デフォルトのSquid設定ファイルです。Squid.2.5用のsquid.confをベースを基に説明しています。 以前(Squid2.0ベース)のSquid.confの説明はこちらに置いてあります。 ドキュメンテーションについては、 http://cache.is.co.za/squid/ を、またFAQについては http://squid.nlanr.net/ のホームページを参照すると良いでしょう。 ※squid.confでミスや不明な点を見つけたらメールください。 ネットワーク・オプション TAG: http_port Usage: port hostname:port 1.2.3.4:port SquidがHTTPクライアント・リクエストを受け取るソケット・アドレス。 多数のソケット・アドレスを指定してもよい。 3つの形式があります: ・ポート ・ホスト名とポート ・IPア

                                              • Node v8.0.0 (Current) | Node.js

                                                The next major release of Node.js brings a range of significant changes and additions, far too many for us to cover adequately in a blog post such as this. This article contains a summary of the most significant changes and features. Say hello to npm version 5.0.0 npm, Inc. recently announced the release of version 5.0.0 of the npm client and we are happy to include this significant new version wi

                                                  Node v8.0.0 (Current) | Node.js
                                                • ElasticSearchの運用とか (2) - なんかかきたい

                                                  割と遊びのつもりで書き始めたら意外と注目が集まってしまって遊びじゃない感じになってきましたが、前回の続きでelasticsearchの運用情報を書いていきます。 @johtani さんにTwitterでElasticSearchのアップグレード情報などを色々と教えていただいたので、また後日検証してまとめてみようと思います。ありがとうございました。 今回は設定周りの情報になります。 そういえば後から見直すことを考えるとどの投稿にどういう情報が乗っているか探すのが大変になりそうだから、索引を作る必要がある気がする。そのうち考えるかも。 JVMのバージョンについて java7を使う場合、特定のバージョンでindexが壊れる問題がLuceneで発生するので避ける必要がある。 Apache Lucene - Welcome to Apache Lucene 具体的にはjava7u25以下またはjav

                                                    ElasticSearchの運用とか (2) - なんかかきたい
                                                  • Goプログラム実行時間の短縮 - ZOZO TECH BLOG

                                                    こんにちは。生産プラットフォーム開発部の中嶋です。生産プラットフォーム開発部はアパレル生産のDXを進めている部門です。具体的には服作りのIT化を含めたアパレル生産の効率化の促進と「生産支援」のシステムを主にGoで開発しています。今回はその運用の中でGoプログラムの実行時間をどのように短縮したのかを紹介します。 目次 目次 学べること・解決できること 背景 エラー発生 調査・対応 インスタンスの変更 原因 実装アプローチの見直し ゴルーチンを使ったタイムアウト処理 サンプルコード チャネルのクローズについて Goのメモリマネジメントについて スタックとヒープ ゴルーチンとメモリについて ヒープについて 問題の仮説 どのように解決したか 実装イメージ 利用したパッケージ サンプルコード 結果 まとめ 最後に 参考リンク 学べること・解決できること Goのメモリエラーに対するアプローチ例 Go視

                                                      Goプログラム実行時間の短縮 - ZOZO TECH BLOG
                                                    • How COMMIT Works in CockroachDB

                                                      JRE しか入ってない Pod で Java の heap dump を取りたい / Get heap dump on JRE container

                                                        How COMMIT Works in CockroachDB
                                                      • [その1] Ruby 2.0のガベージコレクタを使いこなす - ワザノバ | wazanova

                                                        http://samsaffron.com/archive/2013/11/22/demystifying-the-ruby-gc Ruby 2.1のガベージコレクタ (GC) については、「RubyとPythonの違いからガベージコレクタを理解する [その1] [その2] 」で取り上げましたが、今回は、DiscourseのSam SaffronがまとめているRuby 2.0のGCを利用するにあたっての学びを紹介します。 1) Heaps of heaps MRIはヒープにRVALUEとして知られているオブジェクトをもつ。各ヒープは約16KB。RVALUE構造体は、マシンのアーキテクチャによって異なる量のメモリを消費する。x64マシンでは40 byte、x32マシンではサブアーキテクチャー次第で20 byteから24 byte。RVALUEはマジカルなC構造体で、Rubyの様々なローレベル

                                                        • Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

                                                          The Eclipse Memory Analyzer is a fast and feature-rich Java heap analyzer that helps you find memory leaks and reduce memory consumption. Use the Memory Analyzer to analyze productive heap dumps with hundreds of millions of objects, quickly calculate the retained sizes of objects, see who is preventing the Garbage Collector from collecting objects, run a report to automatically extract leak suspec

                                                            Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation
                                                          • Effective Scala

                                                            Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) Table of Contents 序章 (Introduction) 整形: ホワイトスペース, 命名, Imports, Braces, Pattern matching, Comments Types and Generics: Return type annotations, Variance, Type aliases, Implicits Collections: Hierarchy, Use, Style, Performance, Java Collections Concurrency: Futures, Collections Control structures: Recursion, Returns, for loops

                                                            • 革命の日々! __attribute__(alloc_size) を使わないと_FORTIFY_SOURCE を活かせないよ。という話

                                                              _FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),

                                                              • CMU留学を終えて - security etc...

                                                                昨年は自分にとって一番環境に変化があり濃密な1年だった。多くの新しいことを経験し学んだ年だからだと思う。経験とは、主にはピッツバーグにてCMUの学生として過ごし卒業したことである。 CMUの生活は、目の前に広がる未経験を凝縮した海みたいな感じで、経験値も広がりもすごかった。今回はその留学の振り返りを書こうと思う。本当はもう少しまとめてから書こうかとも思ってもいたし、全然技術的でもない。でも想いが冷める前の今のうちにどうしても書いておきたい。 書き始めると想いが入ってしまってだいぶ長くなってしまった。だいぶ削ったけど、面倒な方は最後の「まとめ」を読んでもらえればと思う。 はじめに2017年9月から2018年12月の16か月で、社費留学にてCMUのINI (Information Networking Institute) にてMaster of Scienceの学位を取得するプログラムを修了

                                                                  CMU留学を終えて - security etc...
                                                                • Ruby 2.1 のすべて [PDF]

                                                                  Ruby 2.1 のすべて Koichi Sasada Heroku, Inc. ko1@heroku.com tochigirubykaigi05 2013/09/21 1 About this presentation • In this presentation, I will show you about Ruby 2.1 which I know. tochigirubykaigi05 2013/09/21 2 Ruby 2.1 release plan announcement “I, Naruse, take over the release manager of Ruby 2.1.0 from mame. Ruby 2.1.0 is planed to release in 2013-12- 25. I‘m planning to call for feature prop

                                                                  • How Discord Stores Trillions of Messages

                                                                    In 2017, we wrote a blog post on how we store billions of messages. We shared our journey of how we started out using MongoDB but migrated our data to Cassandra because we were looking for a database that was scalable, fault-tolerant, and relatively low maintenance. We knew we’d be growing, and we did! We wanted a database that grew alongside us, but hopefully, its maintenance needs wouldn’t grow

                                                                      How Discord Stores Trillions of Messages
                                                                    • Recommended Reading for Developers

                                                                      02 Feb 2004 Recommended Reading for Developers This list was last updated in March 2015. Why are updates to my reading list so rare? Because computers change a lot in 10 years, but people don't. To make better software, you need to understand how people work, and that is what the books I recommend tend to focus on. Code Complete 2 Steve McConnell's Code Complete 2 is the Joy of Cooking for softwar

                                                                      • メモリの上に置かれているRubyの文字列を覗く - ローファイ日記

                                                                        これもフィヨルドブートキャンプの生徒さんの質問からふと思いついた、ちょっとした遊びですが。 (そして、書いてある内容に誤解があったら優しく教えてください) p Object.new => #<Object:0x000055959ddf1910> Rubyのオブジェクトのinspect表示のデフォルトで出てくる、この16進数は、このオブジェクトが置かれているメモリアドレスのことだと知られている。 では、実際にこのメモリアドレスにオブジェクトが置かれていることを確かめるには? さて、以下のコードはLinuxで動かすことにする。 String オブジェクトで試してみる。と言っても、StringのinspectはObjectに定義されたものではなく、自分のクラスで定義しているので、まずはそれを「無効にする」。以下のような方法で Object#inspect を呼ぶように変更できる。 class S

                                                                          メモリの上に置かれているRubyの文字列を覗く - ローファイ日記
                                                                        • 新プログラミング言語「ゴリスペース」を公開しました - ずっと君のターン

                                                                          霊長類の中でも特にオランウータン・チンパンジー・ボノボ・ゴリラの知能は高く、人間の5才児程度に相当し、ある程度は抽象的な思考もこなせることが分かっています。言葉に関しても手話を操るチンパンジーやゴリラの話は有名でしょう。 中でもゴリラについては実際に森に住むゴリラと人間が言葉でやり取りをすることさえ可能で、京都大学の山極寿一教授は10種類ほどのゴリラ語を話すことができるといいます。そう考えると彼らの為のプログラミング言語があってもおかしくありません。いや、むしろ無いことの方がおかしく思われます。 そこで私はゴリラ用プログラミング言語「ゴリスペース」を開発しました。*1 ソースコードサンプル Hello World ウホホホホウホホホ、ウホホ。ウッホホ。ウホホホホウホウッホホホホ。ウホホホホ、ウホホウホウホホーイウッホウホホホーイ。ウホホホホウホウホホホホ、ウホホウホホホホ。ウッホホウッホホ

                                                                            新プログラミング言語「ゴリスペース」を公開しました - ずっと君のターン
                                                                          • ( ꒪⌓꒪) ゆるよろ日記

                                                                            どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ

                                                                              ( ꒪⌓꒪) ゆるよろ日記
                                                                            • 15 Sorting Algorithms in 6 Minutes

                                                                              Visualization and "audibilization" of 15 Sorting Algorithms in 6 Minutes. Sorts random shuffles of integers, with both speed and the number of items adapted to each algorithm's complexity. The algorithms are: selection sort, insertion sort, quick sort, merge sort, heap sort, radix sort (LSD), radix sort (MSD), std::sort (intro sort), std::stable_sort (adaptive merge sort), shell sort, bubble sort,

                                                                                15 Sorting Algorithms in 6 Minutes
                                                                              • Ruby の高速化の道。 - だいありー

                                                                                pwd が何の略か? ということを聞かれた。確かに答えられない。 http://www.abbreviations.com/pwd の中で working directory を含むものをピックアップすると、 Print Working Directory Present Working Directory Path of Working Directory の3説が見つかる。 man を見ても、あんまりしっくりこない。なんで cwd (current working directory)にしなかったんだろう? system call は getcwd(2) なのに。 昨日の続き。 早速中田さんが r49614 を入れてくれて、こういう a, b = x, y の時には、 push x # stack: x push y # stack: x y newarray 2 # stack: [

                                                                                • Kibana用途でElasticsearchを使う時の高負荷対策TIPS - Qiita

                                                                                  これは Elasticsearch Advent Calendar 2015 8日目の記事です。 ログの可視化ツールとしてKibanaを使っている中で、Elasticsearch運用として色々と得られた知見を書きたいと思います。 Elasticsearchは、ライトな環境だったら特にチューニングなく安定してますがある程度ドキュメント数が積まれてくると、色々苦労があるなという印象です。 ここに書かれているのは、事情がありシングル構成で頑張った話なので、クラスタ組んでスケールするとこんな悩みはないのかもです。 でも、ログは運用系に入るのでそんなにコストかけれるとこはないのではという個人的な所感。 ラインナップとしては、下記のような感じです。 Kibana経由で重たいクエリが投げられると負荷高すぎて泣いた話 高負荷対策として、fielddata_cacheをディスクに逃がす方法 fluentdの

                                                                                    Kibana用途でElasticsearchを使う時の高負荷対策TIPS - Qiita