Rustコードのコンパイルが遅いことは誰でも知っています。しかし筆者は、世の中のほとんどのRustコードはコンパイルをもっと速くできると強く感じています。 例えば、つい最近の記事にこのように書かれていました。 一方、Rustでは、プロジェクトやCIサーバーの性能にもよりますが、 CIパイプラインの実行に15~45分かかります。 これは筆者には理解できません。GitHub Actions上にあるrust-analyzerのCIの所要時間は8分です。しかも、これは100万行の依存関係に加え、20万行の独自コードが記述されたとても大規模で複雑なプロジェクトでの話です。 確かに、Rustは根本的な部分で非常にコンパイルが遅いのは間違いありません。Rustはジェネリクスのジレンマにおいて「遅いコンパイラ」を選び、全体的な設計思想としてコンパイル時間よりもランタイムを優先しています(この点に関する優れ

CircleCI (Performance Plan) vs.Github Actions 結論:CircleCI を買おう 現在ユビレジでは CI はCircleCI (Performance Plan)と TravisCI を使っていて、CircleCI: サーバーサイド(いろんな言語がある) Webフロントエンド(Rails アプリのなかでwebpack が動いていたり、create-react-app で作られたペラっとしたものがあったりいろいろある) TravisCI: iOS アプリ というような感じで使い分けている。 Performance Plan なんだから iOS のも Travis から引っ越せばいいんじゃねえの?と思わんでもないのだが、 Travis の annual 課金がまだ残ってる iOS の CI と TravisCI とCircleCI に
こんにちは、しいたけです。 某所で関数型プログラミングとはリスト処理のことなのか、と燃えているのを見て、関数型プログラミングとは何か、ということを自分なりの考えを述べたいと思いました。春なので。 この資料は2年ほど前にSupershipの社内勉強会で使ったものですが、この中で関数とオブジェクトを対比している箇所があります。 関数もオブジェクトも、変数や関数の引数戻り値として扱える第1級の値であり、状態を持ち(メンバー変数/クロージャ)、組み合わせが可能(delegate, composition/関数合成)、である、と。 ではオブジェクト指向と関数型プログラミングで何が決定的に異なるかというと、設計・実装のアプローチに何を中心に据えるか、ということだと思います。 オブジェクト指向では、クラス・オブジェクトをモデリングし、各種のオブジェクト指向的デザインパターンを用いてオブジェクト同士を組み

Visual Studio 2017はさまざまなプログラミング言語やプラットフォームに対応。C#や.NET Frameworkを用いたWindowsアプリケーションだけでなく、C++でLinux対応のアプリケーションを開発することも、TypeScriptでWebアプリケーションを開発することも、クラウドアプリケーションやモバイルアプリケーションの開発も可能です。 Visual Studio 2017ではインストールの時間を大幅に短縮。いままで2時間ほどかかっていたインストールを10分程度に短縮。 また必要な機能のみを必要なときに読み込む構造にすることで、起動時間も約半分になり、従来より軽快に動作すると説明されています。 開発者にとって注目すべき新機能のひとつは、C#かVisual Basicでコードを書いている場合、バックグラウンドで自動的にユニットテストを実行してくれる「ライブユニットテ


技術部の鈴木 (@eagletmt) です。 先日、クックパッドで使われているRuby のバージョンを 2.0.0 から 2.2 にアップグレードしました。 アップグレードは主に @sorah と私で進めました。 今回はアップグレードまでの過程やアップグレード当日の流れ、そして今のところ見られているアップグレードによる効果などについて紹介します。 アップグレードまでの準備 テストを通すRuby 2.1 がリリースされたときから 2.1 にアップグレードできないか検証環境でテストを回していました。 しかし、当時はクックパッドの全テストを実行すると必ず途中でRuby がクラッシュする現象に悩まされていました。Ruby の GC のバグ、拡張ライブラリのバグを疑いながら色々やってみたものの結局解決できず、Ruby 2.2 がリリースされてからもこの状況は改善されませんでした。 しかしある
2014年のWWDCでは、"Testing In Xcode 6"という講演で XCTestの変更点について、以下の通り説明されています。 互換性の向上 非同期テスト用APIの追加 パフォーマンス評価用APIの追加 この記事では、非同期テスト用APIの追加・パフォーマンス評価用APIの追加について説明します。 非同期テスト用APIの追加 XCode6のXCTestでは、非同期テスト用のAPIが追加されました。 バックグラウンドで実行するような処理やネットワークのI/Oなど、非同期な振る舞いをテストするときに使えます。 書き方 非同期な処理を実行するときに、期待する処理が完了したタイミングでXCTestExpectationのfulfillを呼び出すよう実装します。 そのときにテストケース側ではwaitForExpectationsWithTimeout:を呼び出して、期待する処理が完了する




これは PyPy Advent Calendar の記事です。PyPyのコアディベロッパーである "Maciej Fijalkowski" 氏のブログ "Analysingpython's performance under PyPy" の抄訳+αです。Python の一般的なパフォーマン解析のモデルは、"プロファイラを実行して、ボトルネックを探し出し、それを最適化するか C で書き直す" ことです。しかし PyPy ではこのアプローチだけでは不十分です。なぜなら、 多くの大規模アプリケーションで、プロファイラはフラットです: PyPy のトランスレーションツールチェーン、Twisted、モダンな Web サーバ等が良い例です ボトルネックを発見したとしても、それが特定の関数内でのみ遅いのか、複数の関数が関係しているのか明確になるわけではありません。どうすれば遅くて、どうすれば速くなる

人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 前回の記事「Apache 2.4.1のスループット評価(旧ApacheとNginxとのベンチマーク比較)」を非常に多くの方に見て頂いており、こういう情報が重要なんだなぁ、としみじみ思った。多くのオープンソースを使わしてもらっているので、こういう形でフィードバックしていけたらよいな。参考にして頂いてありがとうございます。 今回は、前回の記事に続き、個人的にも非常に興味のあるApache2.4.1の「動的コンテンツのスループット」がどの程度なのかを評価したいと思う。 ※いくつかの検証を追加したのと、細かい部分で比較の仕方がよろしくなかったので修正を加えました。 ■ 修正と追記箇所(2012年3月2日) ・PHPのバージョンを5.3.10に統一(思

人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 久々のApache HTTP Server 2.4.1という安定版がリリースされたので、早速ベンチマーク評価を行う。今回はevent_mpmのExperimentがとれて、晴れてデフォルトMPMになったのでそれを使ってみたい。 日本一(ひょっとすると世界一)早いApache 2.4.1 event_mpmのレビューを意識してみた。 はじめに 個人的にも、event_mpmが採用されたことに最も注目している。event_mpmは非同期型のIO処理をしていて、nginxに近いアーキテクチャをとっている。厳密には、nginxの非同期と比べた場合、nginxは徹底的にノンブロッキング(accept4を使う等)してworkerスレッドで次々と並列処理し

Web サービスをリリースするにあたり避けては通れない(避けて通ってはいけない)性能・負荷テスト工程。 ウォーターフォールやアジャイルなど開発手法は様々ありますが、現実問題、概ね開発工程が遅延する傾向があります。なんとか単体テスト・結合テスト・システムテストはやりきるものの、力尽きて性能・負荷テストを実施せずにリリース・・・なんてことはありませんでしょうか? そんな場合に限って、リリース直後に高負荷でサービスダウン・・・なんてことになりがちです。 そうならないために性能・負荷テストは必ず実施すべき項目です。ツールとして JMeter がメジャーですがシナリオ作ったり、使い方覚えたりと、正直面倒です。でも apache bench なら使ったことあるし知ってる!という方も多いことでしょう。そこで僕が "簡易的" に性能・負荷テストで使っている方法を公開します。 ab を用いた簡易的な性能・負
Thanks for checking out this Internet Explorer 9 Platform Preview demo. This demo usesanimationtechniques to flip 96 letters as fast as possible. The more powerful the underlying computer and the browser, the faster the images will flip. This demo usesHTML5 Canvas andHTML5 Audio.It's a fun way to demonstrate how Internet Explorer 9's overall performance, from hardware accelerated graphics, to
今まで、パフォーマンスに注意しなきゃいけないところは テストに StopWatch stopWatch = new StopWatch(); List<Long> times = new ArrayList<Long>(); for(int i = 0 ; i < 100 ; i++){ stopWatch.reset(); stopWatch.start(); foo.bar(); //計測する処理 stopWatch.stop(); times.add(stopWatch.getTime()); } BigDecimal sum = new BigDecimal(0L); for(Long i : times){ sum = sum.add(new BigDecimal(i)); } Long average = sum.divide(new BigDecimal(times.size
はじめに 2010 年 9 月 15 日を持ちまして、サイボウズ・ラボを退職いたしたました。 報告も兼ねて、久しぶりにブログを書いてみたいと思います。 (写真はゆうすけべーさんです) この会社に入って、たくさんの学びと思い出がありました。 その一つ一つをまとめていければ、素晴らしい記事になるのかもしれませんが、僕は文章が苦手です。 ですので、うまく退職のエントリを書き上げることができません。 言葉にできない。そんな感じです。 なので、このエントリはサイボウズ・ラボやサイボウズ本社の仲間たちへのありがとうの気持ちをこめて、自分らしく最後までJavaScript のことを書きたいと思います。 サイボウズでの最後の仕事 僕にとって、サイボウズでの最後の仕事は「JavaScript で新しいユーザーインタフェースを作ること」でした。 そして、その中で始めて複数人による大規模なJavaScrip


1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く