You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Apple M1に関して以下のようなツイートが話題になった。 18/ Another "magic" trick is how their "Swift" programming language uses "reference counting" instead of the "garbage collection" in Android. They did something in their CPU to double the speed of reference counting.— Robᵉʳᵗ Graham😷, provocateur (@ErrataRob) 2020年11月26日 fun fact: retaining and releasing an NSObject takes ~30 nanoseconds on current gen Intel, and ~6.
JSON is important, damn near everything that we do as programmers or operators involves JSON at some point. JSON decoding is expensive, if your product talks JSON then performance of marshalling data in and out of JSON is important. This is a talk about designing an efficient replacement for encoding/json.Decoder.
QUIC matches TCP's efficiency, says our research. | FastlyWe’ve shared a lot about how much we love QUIC (and why we’re building our own implementation called quicly). It promises latency reduction, improved throughput, resilience to client mobility, and increased privacy and security. Excitingly, the QUIC working group at the IETF is now on the cusp of getting the first version of QUIC wrapped up
現在標準化が進められている次世代HTTPの「HTTP/3」は、トランスポートプロトコルとして「QUIC」と呼ばれる新しいプロトコルを採用します。 現時点のHTTPはトランスポートプロトコルとして「TCP」が採用されています。その上で、可能な限り高速な通信が行えるようにさまざまな工夫や最適化が進められてきました。そしてもうこれ以上高速にしようとすると、TCPそのものを改善していくべきだろう、というところまできたのです。 それがHTTP/3で「QUIC」が採用される大きな理由といわれています。 TCPは内部で輻輳制御や再送などを自動的に行うことで通信が確実に行われることを保証してくれる便利なプロトコルですが、それゆえに、確実に通信が行われるまで待つ必要があるために通信環境によっては遅くなりがち、などの側面があります。 そこでQUICは、TCPのような通信の保証がない代わりにリアルタイム性の高い
There are several well-known k/v database in Go ecosystem. They can be used as persistent caches, storages, databases, etc. All of them have common features such as Get, Set (Update), Delete, and some of them have customized features such as transaction, bucket, column families. For those common features, how about their benchmarks? This post will give you some test results in Solid State Drive (S
The English version of this article is available here: medium.com 2/4(日)に、去年のRubyKaigiが終わった直後の新幹線で開発を始め10月に公開したJITコンパイラをRubyのtrunk (2.6.0-dev) にマージし、昨日TD Tech Talk 2018で以下のような内容の発表をしました。 speakerdeck.com まだそれほど速くできていないということもあり、私はTwitterでのみ共有して満足していたのですが、海外の方がいくつか記事を書いてくださいました。 Playing with ruby's new JIT: MJIT - John Hawthorn Ruby’s New JIT – Square Corner Blog – Medium とても丁寧に書かれているので、私の記事がわかりにくければ
TL;DR; Amazon AuroraはIn-Memory DBでもなくDisk-Oriented DBでもなく、In-KVS DBとでも呼ぶべき新地平に立っている。 その斬新さたるやマスターのメインメモリはキャッシュでありながらWrite-BackでもなくWrite-Throughでもないという驚天動地。 ついでに従来のチェックポイント処理も不要になったのでスループットも向上した。 詳細が気になる人はこの記事をチェキ! Amazon AuroraはAWSの中で利用可能なマネージド(=運用をAWSが面倒見てくれる)なデータベースサービス。 ユーザーからはただのMySQL、もしくはPostgreSQLとして扱う事ができるのでそれらに依存する既存のアプリケーション資産をそのまま利用する事ができて、落ちたら再起動したりセキュリティパッチをダウンタイムなしで(!?)適用したりなどなどセールストー
@BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば
Performance is an important criteria when choosing test-runner. Tests should pass as fast as possible to detect errors earlier, improve developer experience and reduce CI servers running time. In this story I will compare the most popular JavaScript test-runners on the same set of unit tests and find the winners. CandidatesI will not go deep into the specific features of test-runners. Each one has
技術本部の柘植です。今回は技術本部サービスリライアビリティグループで1ヶ月間インターン生として参加してくれた漆田さんの記事になります。 はじめに はじめまして。技術本部サービスリライアビリティグループ(以下SRG)の漆田と申します。SRGは大きく4つのチームに分かれており、その中のWIGというチームに、インターン生として1ヶ月間お世話になりました。 唐突に話が変わりますが、ちょうど私がインターンに来た頃に、AWSがNVMeストレージを備えたI3というインスタンスをリリースしました。このようにNVMeを提供するクラウドサービスが増えてくると、各社のディスクの性能やその特徴を基に適切なものを選択したい、という希望がわいてきます。 これに伴い、AWS、GCP、プライベートクラウドの3通りでNVMeストレージの性能を比較することにしました。今回の記事ではその検証結果を報告します。 NVMeって?
Go 言語で Apache Bench (ab) を実装してみた。 https://github.com/takatoshiono/go-ab なぜか 以前、wc コマンドを実装した。その時に ab も候補に入っていたけど、ab は http 通信をするプログラムなので、より単純な wc を選択したのだった。その次に何やるか、ということで http クライアントのコードを書く練習になりそうな ab を実装してみることにした。 期間は2016年10月から1ヶ月くらいやったあと、2ヶ月くらいブランクがあって、2017年1月に再開して一ヶ月くらいやっていた。コツコツとよく続いたと思う。 Apache Bench (ab) とは Apache Bench (ab) は HTTP サーバーの性能を測定するためのプログラムでシングルスレッドで動作する。Apache HTTP サーバーのソースコードに含
まだgzipで消耗し(略) 2016年、人類が待ち望んでいた、gzipを圧倒するOSS圧縮ツールzstd(Zstandard)がリリースされたにも関わらず、なんかあんまり話題になっていなくて寂しいので、ちょろいかんじの賑やかし比較記事を書きました。圧縮ツールのカタログ的に眺めていただけるかと思います。 はじめに (この記事で言う)圧縮ツールとは何か 圧縮ツールという呼び名は正確ではない(はず)です。平たく言えば、gzipやbzip2、xz、lz4などですが、人によっては、tarの裏側としてしか使ってなくて、聞いたこともないかもしれませんね。そういうときはまずgzipのmanpageとか読んでください。 しかし、そういうツールを何と呼べばいいのかわからないので、ここでは圧縮ツールと呼んでいます。 ややこしいですが、アーカイバではありません。アーカイブとは実態が一つのファイルになっているフォル
アルゴリズムを学習していると、ある実装の速度がどのくらいか計測したいことがよくある。これまでは、currentTimeMillisを利用して、愚直にベンチマークを取っていたのだけど、結構だるい感じだった。 調べてみると、jmh と nanobench という二つのツールがあった。jmhは使ってみたけど、非常に重厚で難しかったので、nanobenchを使ってみた。 ハマったこと nanobench のREADME.mdを見ていると、nanobench.jarを落としてきて、以下のように実行すると良いと書いてある。 > javac ListBenchmark.java > java -jar nanobench.jar ListBenchmarkしかし、Java初心者のためか、jarファイルのことがよく分からなかったり、classpathの問題でハマったり、とにかくハマりまくってうまく動かなか
ISUCON6の予選問題作成メイン担当のSongmuです。皆さん予選はいかがでしたか?至らぬ点もあり申し訳ない部分もありましたが、楽しんでいただけたようであれば嬉しいです。 さて、遅くなりましたがISUCON6予選に使用した参照実装、ベンチマーカー、その他諸々を含むリポジトリを、このエントリと共に公開します。 https://github.com/isucon/isucon6-qualify 謝辞問題作成にあたり、多くの人に協力いただきました。以下に役割分担を書き出してみると非常に豪華な面々です。これらの方々の協力なしには予選は開催できなかったでしょう(本当に!)。ありがとうございました。 問題アイデア出し: Songmu/motemen/wtatsuruコンセプト実装: motemen初期実装: Songmu参加者用ポータル作成: motemenベンチマーカー及びワーカー: Songmu
高速なHTMLエスケープをするライブラリを作った ある日HTMLエスケープを速くしたくなって、hescapeというライブラリを作った。 github.com とにかく速いHTMLエスケープがしたい Railsアプリのビューのレンダリングにおいて、CGI.escapeHTMLを高速化*1することでRailsのデフォルトのテンプレートエンジンが大きく高速化されたり*2、GitHubでもHTMLエスケープが全体のパフォーマンスに影響が大きかった事例もある*3など、常に自動でHTMLエスケープが行なわれるRailsの環境ではHTMLエスケープの速度が割と大きな意味を持っている。 従って、Hamlitの最速性を維持するためにHTMLエスケープのパフォーマンスを極めておきたかった。 vmg/houdini を倒したい 前述したGitHubの人が既にhoudiniというかなり速いエスケープライブラリを作
Go1.7ではSubtestsとSub-benchmarksという機能がtestingパッケージに導入される.これを使うとテスト関数/ベンチマーク関数の中にテスト/ベンチマークを定義できるようになる.テストの場合はテストに階層を持たせることができ,ベンチマークの場合はTable Driven的にベンチマークを記述することができるようになる.さらに一連のテスト/ベンチマークに対して共通のsetupとtear-downを持たせることもできる. テストの場合はTable Driven Testsで十分なことも多く恩恵は少ないかもしれない.それよりもベンチーマークで効果を発揮することが多い. 例えば以下のように異なる設定値を使ってFooのベンチマークをとるとする.今までであればそれぞれ設定値ごとにベンチマーク関数を準備する必要があった. func BenchmarkFoo1(b *testing.
使える計算機環境が増えたのでそれぞれのベンチマークをとってみる。 ベンチマークソフトはUnixBenchを使う。 さくらVPS Ubuntuをインストールしてあるので、aptでビルド環境を入れた後、UnixBenchをビルドして使う。 ビルドツールを入れる。 $ sudo apt-get update $ sudo apt-get install build-essential UnixBenchはGitHubで公開されているので取ってこれるようにgitツールも入れる。 $sudo apt-get install git git cloneする $ mkdir unixbench $ cd unixbench $ git clone https://github.com/kdlucas/byte-unixbench.git . あとはRunするだけで、必要なソースコードのビルドからベンチマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く