はじめに 最近になって、Ninjaというビルドシステムがかなり高速らしいという話を耳にしたため、どれくらいビルドが高速になるのかMakeと比較して試してみました。 今回はcmakeのソースに対して、MakeとNinjaそれぞれでビルドを実行して処理時間を計測したいと思います。 また、ビルド時に使用されるMakefileとbuild.ninjaはそれぞれCMakeLists.txtから生成したものを使用します。(ややこしいですが、cmakeを使ってcmakeのソースをビルドします。) 環境準備 実行環境について 実行環境はdockerで用意しました。 dockerfileを作成するのが面倒だったので、Ubuntu 22.04のイメージをベースに、必要なパッケージは後からapt installで追加していきます。 コンテナの作成手順はこの記事では割愛します。 必要なパッケージのインストール 今
Welcome to Ladybird, a truly independent web browser. We are building a brand-new browser from scratch, backed by a non-profit. Get Involved About Ladybird Ladybird is a brand-new browser & web engine. Driven by a web standards first approach, Ladybird aims to render the modern web with good performance, stability and security. From its humble beginnings as an HTML viewer for the SerenityOS hobby
Warning This document deals with the legacy pass manager. LLVM uses the new pass manager for the optimization pipeline (the codegen pipeline still uses the legacy pass manager), which has its own way of defining passes. For more details, see Writing an LLVM Pass and Using the New Pass Manager. The LLVM Pass Framework is an important part of the LLVM system, because LLVM passes are where most of th
Typo Tolerance: Handles typographical errors elegantly, out-of-the-box. Simple and Delightful: Simple to set-up, integrate with, operate and scale. ⚡ Blazing Fast: Built in C++. Meticulously architected from the ground-up for low-latency (<50ms) instant searches. Tunable Ranking: Easy to tailor your search results to perfection. Sorting: Dynamically sort results based on a particular field at quer
32-bit floating-point linear color processing pipeline. Color management handled by OpenColorIO. Dozens of video and image formats supported such as: H264, DNxHR, EXR, DPX, TIFF, JPG, PNG through OpenImageIO and FFmpeg. Support for many free, open-source, and commercial OpenFX plugins—currently almost all features of OpenFX v1.4 are supported. Those marked with (+) are included in the binary relea
NATRON Open Source Compositing Software For VFX and Motion Graphics. Download Github Cross platform & open-source compositor for visual effects and motion graphics industry Natron is a powerful Digital Compositor that can handle all of your 2D/2.5D needs. Its robust OIIO file formats and OpenFX architecture is what make Natron the most flexible open source compositor for the visual effects communi
Natron (ナトロン)は、 オープンソースのノードベースデジタル合成ソフトウェア。 ユーザーインターフェースとコンセプトの多くは、Avid Media Illusion 、 Apple Shake 、 Blackmagic Fusion 、 Autodesk Flame 、 Nukeなどの類似ソフトウェアの影響を受けている。 OpenFX 1.4 APIに準拠したプラグインをサポートしており、ほとんどのOpenFXプラグインがサポートされている。 NatronはタンザニアのNatron湖にちなんで名付けられた。which, according to Natron lead programmer Alexandre Gauthier, provides "natural visual effects" by preserving its dead animals. [2] Natronは
openFrameworks(オープンフレームワークス 略称oF)は、主にクリエイティブをターゲットにしたオープンソースのC++ソフトウェアフレームワーク。 MIT ライセンスで配布され、Windows、macOS、Linux、iOS、Android のプラットフォーム[1]で作動する。開発者はザック・リーバーマン(Zach Lieberman)、セオドア・ワトソン(Theodore Watson)、アルトロ・カストロ(Arturo Castro)の三人を中心とする OF コミュニティーのメンバーである[2]。"「創造的なコーディング」のためのC++のオープンソースツールキット"と称されている[3]。 openFrameworksの開発プロジェクトは、2004年から2005年に掛けて順次開始された。現在では、音、光、映像、センサー、アクチュエータなど、多様な技術を統合して表現するための基盤
本連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第3回は、スマートポインタについて紹介します。高度なメモリ管理には生のポインタの使いこなしが必須という古い常識はもはや通用しません。メモリを効率よく、しかも安全に使うことを実現しているスマートポインタについて理解を深めます。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。本連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし
Interrupt Live: Noah Pendleton | MCU SDK Engineer @ Memfault | Thurs, January 30th - 10:30 AM ET | 7:30 AM PT | Get Notified Sometimes, C/C++ projects have a long development cycle. When working on such a project, it can be easy to take our development environment for granted, and forget about the effort invested in its bring-up. The build environment works like magic, the test framework is neatly
はじめに Pythonは世界的にも人気のあるプログラミング言語ですが、実行速度については課題があります。Pythonの実行速度を高速化したい、という要求は根強く、これまでにも様々な処理系が開発されています。 この記事はPythonで書かれたコードを35000倍に高速化するにはどのような方法があるかについてまとめたものです。 この記事は: Pythonで書かれたアルゴリズムを35000倍に高速化する 事前コンパイル、並列化、SIMD演算を駆使する 最終的に44000倍まで高速化できた なぜ35000倍? 2023年5月2日にModular社よりPythonの使いやすさとC言語の性能を兼ね備える新しいプログラミング言語、Mojoの開発について発表がありました。低レベルのハードウェア向けにコンパイル可能なこと、文法的にはPythonを踏襲しており、既存のPythonライブラリを利用可能であること
この記事の狙い この記事は、端的に言えば この図が言わんとしていることを理解できるようになるための解説を目指しています。 昨今のプログラミング環境において、メモリの管理方法やその実態は、詳細を知らずとも目的を達成できるようになっています。といっても、実際にはメモリは無尽蔵に使えません。制約が厳しい環境下で動かさねばならないプログラムもありますし、多少潤沢に使える環境であっても、無駄に浪費するよりは、必要最低限のメモリで効率よく動作するプログラムの方が、多くの場面においては良いプログラムと言えるでしょう。 メモリのことなど知らなくてもプログラムを書けるのは一つの理想ではありますが、現実的にはその裏に隠されている(抽象化されている)仕組みを知っておいたほうが有利です。また、昨今のレトロゲームにおけるタイムアタックで駆使されるメモリ書き換えのテクニックなども、何故そういったことが可能なのかを知る
新しいヘッダ 基本的に、C++の中でC言語のプログラムを用いることができます コンソール入出力についても、printf()やscanf()を使用することに問題はありません 骨格部分(制御や変数など)ではC++とCに大きな変化はありませんが C++で大きく改善された部分の一つが入出力です 応用的な詳しい内容は、C++の本質を学習してから紹介します C++のコンソール入出力ではstdio.hヘッダファイルを使いません これに代わるのがiostreamです さらに、C++では入出力に関数は用いず入出力演算子を用います 出力演算子は<<、入力演算子は>>です これは、シフト演算子と同じですね。もちろんC++でもシフト演算子として用いることもできます C++は、これらの演算子を入出力にも使用できるように拡張されています stream << value; streamには、出力先のストリームオブジェク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く