タグ

最適化に関するiwwのブックマーク (110)

  • �Linux/DB Tuning (DevSumi2010, Japanese)

    Similar to �Linux/DB Tuning (DevSumi2010, Japanese)

    �Linux/DB Tuning (DevSumi2010, Japanese)
  • なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと

    c - Why doesn't GCC optimize a*a*a*a*a*a to (a*a*a)*(a*a*a)? - Stack Overflow 俺は科学技術計算の数値計算の最適化をしてたんだけどさ。GCCはpow(a, 2)をa*aにしてくれるんだな。うん。で、pow(a, 6)は最適化されずに、ライブラリ関数であるpowを呼んじゃうんだ。パフォーマンス的に最悪。(Intel C++ Compilerはpow(a,6)のライブラリ関数呼び出しを消し去ってくれるんだけどな) どうもよくわからんのが、pow(a, 6)をa*a*a*a*a*aで置き換えて、GCC 4.5.1をオプション"-O3 -lm -funroll-loops -msse4"で使ったら、mulsd命令を5個使う。 movapd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd

    iww
    iww 2014/03/28
    『-ffast-mathオプションを指定すると、浮動小数点数演算の誤差を気にしない』 便利そう
  • : _

    iww
    iww 2014/02/21
    『(doubleへの変換はコンパイラの最適化でも消えない。少なくともgccの-O2では消えない)』
  • PHPコード最適化Tipsのウソと本当(解説) - カタコト日記

    PHP コード最適化 Best Practices 63+ - カタコト日記 前回は、元記事に一定の敬意を表して、項目とかはあえてそのままにしてたんですが、 自分としても気になる部分が多々あったので、少しだけ調べ直して優先度&解説つけました。 独断と偏見ですが。ヽ(´ー`)ノ 検証はしてません。ごめんなさいごめんなさい。 優先度A、B、C、不明、非推奨に分けてみました。どうぞつっこんでください。 長いよ、今回は。 優先度A. 頻度も高いし使えそう - 6つ 01. static にできるメソッドは static として宣言しよう。(4倍速い) 正しくは、static なメソッドには、OOP のルールに従ってちゃんと static 宣言をつけよう! ってとこでしょうか。来そうでないものを無理に static にしちゃえって話ではないはず。*1 × <?php public function

    PHPコード最適化Tipsのウソと本当(解説) - カタコト日記
  • 「CoffeeScriptの関数は明示的にreturnしてはいけない理由」を探す暇あったら他にやるべきことあるのでは? - mizchi's blog

    CoffeeScriptの関数は明示的にreturnするべき | CreativeStyle 当に遅いのか、それを確かめましょう。 適当にでっちあげたコードです f1 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j f2 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j return console.time "f1" for i in [1..100000] then f1() console.timeEnd "f1" console.time "f2" for i in [1..100000] then f2() console.timeEnd "f2" 実行してみます $ coffee hoge.coffee f1: 105ms f2: 4ms 約26倍違う、ということがわかります。

    「CoffeeScriptの関数は明示的にreturnしてはいけない理由」を探す暇あったら他にやるべきことあるのでは? - mizchi's blog
    iww
    iww 2013/12/21
    『「コードの速度が問題になるなら、その時はじめて最適化すべき」』
  • グダグダ言うわよ。: MySQLでSELECTするときにLIMITをつけると速度が上がるのか。

    2009年5月20日水曜日 MySQLでSELECTするときにLIMITをつけると速度が上がるのか。 どうか。ということを疑問に思いました。 ブックマークの処理速度の向上を目指してあれこれ見てはいるのですが。 こまごまとSQLを引いていて、そもそも全体的な引き方が悪いんじゃないかとも思ってくる次第・・・ まぁ、それは今更なのでSQL文ひとつひとつを確認していくのですが。 SELECT文でLIMITをつけるつけないで処理速度って変わるのですかね。 いろいろ検索してみたのですが結局わからず終い。 やったほうが早いのでやってみました。 【SELECT * FROM `テーブル` WHELE `カラム`= 'Google' 】 と 【SELECT * FROM `テーブル` WHELE `カラム`= 'Google' LIMIT 1】 結果は歴然。 0.0663 と 0.0014 でした。 エェー

  • mscorsvw.exe がCPUを100%占拠する | Rutakeの技術メモ

    English Post is Here インストール直後のWindows7の動きがあまりにもぎこちないので調べてみると上記のプロセス「mscorsvw.exe」がCPU使用率100%の模様。 どうも.Net Frameworkの最適化のプロセスらしいがいい迷惑だ。もっと控えめにやれっつーの! というわけで最適化が終われば落ち着くのではある(わがPCでは5分ほど)が、速攻落としたい場合はサービス停止をするがよろし。 .NET Runtime Optimazation Service vxxではじまるサービスを止めてしまおう。 スタートメニューからファイル名を指定して実行で「services.msc」を入力すると即サービスの画面に行ける。サービス名が[.]で始まるので先頭付近にいるはず。 状態が開始となっていたら停止にしてしまおう。停止のままが気味が悪い人は時たま手動起動してあげれば問題ない

  • Devsの常識、DBAは非常識

    AIAWSで現世から離れる試み-仕事がちょっと大変な時もあったりするから�俺のかわりにAIにシステム作ってもらえるシステム作った話.pptxJun Suzuki

    Devsの常識、DBAは非常識
    iww
    iww 2013/09/15
    『Buffer pool hit rateも見てあげてください。これが 1000/1000 のうちは取り敢えず大丈夫です。』
  • 【Sassで解決】CSSの@importはどれだけ悪影響なのか自分で試してみる | DevelopersIO

    はじめに Webサイトの高速化について調べてみるとCSSの@import url();は使わない方が良いという指摘をよく見かけます。 問題となるのはパラレルロード(複数のリソースを同時にロードする)ができなくなる場合があることと、CSSの読み込み順序が変わってしまうことがあるようです。 実際にどれだけ読み込み速度に問題があるのか、3つの読み込み方で試してみたいと思います。 比較する3つの読み込み方 今回はこの3つで読み込みを比較してみます。 CSSの@import url();で読み込む HTMLのlink要素で別々に読み込む Sassで@importして1つにまとめてlink要素で読み込む 対象ブラウザ 今回の検証ブラウザはChromeとInternet Explorerです。 どちらも備え付けの開発者ツールで検証します。 今回計測したサンプル サンプルはこちらに公開しているので問題があ

    【Sassで解決】CSSの@importはどれだけ悪影響なのか自分で試してみる | DevelopersIO
  • 赤ペン先生と絵の練習 | ダブトゥーンスタジオブログ

    株式会社スタジオモリケンはアニメ会社であり、漫画イラスト仕事ももちろん受けるのですが、 その会社の社長で月刊連載漫画家のわたくしめが社内で一番絵が下手というのは問題なのではないかと 今更ふと思いましたので、まあ俺も気を出せばこんなものではないのだよというところを みせつけてやろうという企画です。 いやいや、誤解のないように言っておきますが ■いつもの俺絵 味のあるいい絵じゃないか。 最適化されておる。うんうん。 ちなみに描いた絵は弊社の赤ペン先生が添削してくれます。 スタッフが恐れおののく恐怖の赤ペンですが、 わたくしめが気を出したらそんなのへでもありません。 ■日のお題 まあ見ての通りなので説明するまでもないのだが、けいおん!の唯である。 ■清書 いきなりオリジナルというのもハードルが高いので、 版権絵に逃げてみた。 思ったよりラフがうまくかけたので、これは赤ペン先生も文句ない

  • 末尾再帰 - Wikipedia

    末尾再帰(まつびさいき)とは、再帰的な関数やプロシージャにおいて、自身の再帰呼び出しが、その計算における最後のステップになっているような再帰のパターンのことである[1]。再帰にかかわらず一般に、そのような最後の呼び出しを末尾呼び出し[注釈 1]という。呼び出しではなく、戻り先を保存しない飛び越し命令(いわゆる「GOTO文」)にコンパイラ最適化できるという特徴がある(#末尾呼出し最適化)[1]。 手続き型言語と末尾再帰[編集] C言語のような言語では、言語処理系による自動的な末尾呼び出しへの変換やその最適化(末尾最適化)は難しい。自己再帰を注意して書けば、最適化によりループにできるコンパイラもある、という程度である。 プログラムの手動変換[編集] 一般に再帰呼び出しが可能な言語では、サブルーチン呼び出しのたびにスタックに呼び出し先から戻るための情報を保存する。そのため再帰が深くなりすぎるとス

  • 子育てのコストを払わないフリーライダーは誰か?

    http://anond.hatelabo.jp/20121130193539 子供レス社会への最適「化」というが、元々ではないか 都市は質的に、生産年齢の労働者を地方からつまんでくる構造になっている 元増田が子育てをする立場になったから顕在化して見えるのでは 江戸にだって男やもめがいっぱい流入してたわけだから、現代の都市の病理と表現するのさえ近視眼的で、都市というもの自体が持っている特性だと思う 都市には元々子育ての機能が十分に存在しない 少ない下町の土着住人分ぐらいしか、育児に割く人手やスペース等諸々のキャパがない だから、都市は子育てをよそでやらせる方式で成立しているエリアなんだ ・地方で生まれ育つ ・労働力になったら都市に流入 ・働けなくなったら地方に帰るか野垂れ死ぬ 子育てのコストはかなりの部分を地方が負担してきたことになる 揺籃と墓場を地方任せにして真ん中の美味しいところを集

    子育てのコストを払わないフリーライダーは誰か?
    iww
    iww 2012/12/03
    都市に託児所がもっと増えてお金を出せばすぐ入れられる状況になれば、この格差は無くなる ような気がする。
  • C言語より高速なJavaScriptによるバイナリ操作が話題

    JavaScriptなどのスクリプト言語は動作が遅く、最適なパフォーマンスを得るにはC/C++で実装しなければならないという常識に挑んだ先進的な講演が話題になっています。この話題の発端は2012年10月7日から10月8日までベルリンで開催されたJSConf.euでFelix Geisendörfer氏が行った講演です。 彼の講演の題材はnode.jsからMySQLに接続する為のバインディングのパフォーマンスに着目しています。2010年当時、node.jsにはMySQLのバインディングが存在しておらず、増井さん作のnode-mysqlモジュールが開発中の状態でした。このモジュールはJavaScriptでバイナリを解析しておりJavaScriptのみで開発されていました。この状況を受けてFelix氏が新たにnode-mysqlモジュールを新規に開発を始めました。このモジュールもJavaScri

    C言語より高速なJavaScriptによるバイナリ操作が話題
  • KMC Staff Blog:gccのビルトイン関数 (printf)

    2009年07月03日 gccのビルトイン関数 (printf) gccのtipsを紹介します。主にgcc3.x からgcc4.x で変わっているところです。 #include <stdio.h> int main() { printf("Hello, world!\n"); } このプログラムはgcc3では普通にprintfを呼び出すコードを生成しますが、gcc4ではどうなるでしょうか。ARM版のexeGCC4でちょっと試してみます。 > gcc -S hello.c 生成されたhello.s を見てみると ... .LC0: .ascii "Hello, world!\000" .text .align 2 .global main .type main, %function main: @ args = 0, pretend = 0, frame = 8 @ frame_needed

  • RVO (Return Value Optimization)についてのメモ - nokunoの日記

    Efficient C++を呼んでいたら,RVO (Return Value Optimization)が適用されるコードと適用されないコードの例が紹介されていました.RVOというのは,C++で関数がオブジェクトを返す場合に,一時オブジェクトの生成とコピーを抑制するコンパイラの機能です.非常に興味深いですね.Amazon.co.jp: Efficient C++パフォーマンスプログラミングテクニック: ダブ ブルカ, デビット メイヒュ, 浜田 光之, Dov Bulka, David Mayhew, 浜田 真理: RVOが適用されないコード Complex operator+ (const Complex& a, const Complex& b) { Complex retVal; retVal.real = a.real + b.real; retVal.imag = a.ima

  • HTMLはファイルサイズの無駄遣いだと思う。

    ブログ「サイバー少年」へようこそ! 小学六年生ごろからプログラミングを趣味にしている高校生のブログです。 勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。 (当ブログについて詳しくは「ブログ概要紹介」を参照) サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ インターネットの世の中になった。 このブログも.html、あれを見てもどれを見ても.htmlである。 Webページで使われるファイルフォーマットは殆どが.htmlとなっている。 今日取り上げるのはこのHTML。 私はとてもHTMLがファイルサイズの無駄使いだと思う。 なぜならHTMLがプログラミング言語だからである。 つまり、ビット(バイト)レベルでの形式にすれば小さく出来る物を わざわざソースコード(テキスト)形式にして無駄にファイルサイズを大きくしているからである。 クレームをつけ

    iww
    iww 2012/08/30
    通信路を圧縮すればいいってもんでもないだろう
  • JavaがC++に圧勝するコード例 - LLVMとコンパイラとVM

    Author:nothingcosmos(坂頂佑樹) IT系、特にVMに関して 周辺技術の紹介等をしています。 コメント・質問はお気軽にどうぞ。 LLVM wiki twitter:nothingcosmos

  • Success is a Journey, not a Destination: 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #2/3

    [原文: What Every C Programmer Should Know About Undefined Behavior #2/3] 連載のpart 1では、未定義な振る舞いとは何か、未定義な振る舞いを利用して、「安全な」言語よりもハイパフォーマンスなアプリケーションを生成するためにCとC++コンパイラが未定義な振る舞いをどのように利用しているのかを議論した。この記事では、未定義な振る舞いが引き起こす全く驚くような結果を説明し、Cがどんなに"安全でない"かを話したい。part 3では、この驚くような結果をやわらげるために、親切なコンパイラは何が出来るのか (それが必須の機能でないとしても) について話したいと思う。 今回の記事は「Cプログラマにとって、未定義な振る舞いが怖くて恐ろしいことがあるのはなぜなのか」と呼びたい。:-) コンパイラの最適化は驚くような結果を引き起こす 近年

    iww
    iww 2012/02/07
    「デリファレンスされているので、NULLのはずがない」 ここが例のバグにつながる
  • 動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記

    組み合わせ最適化の手法として「動的計画法」というモノがあります。 wikipediaから抜粋 動的計画法(どうてきけいかくほう、英: Dynamic Programming, DP) コンピュータ科学の分野において、ある最適化問題を複数の部分問題に分割して解く際に、そこまでに求められている以上の最適解が求められないような部分問題を切り捨てながら解いていく手法 一見難しそうですが、実は理解するのは以外と簡単です。いろいろな場面で応用が利く便利な手法ですので、覚えておいて損はないものです。コンピュータ系、情報系のお勉強をする人であれば、おそらく一度は習ったりするかもしれません。 ナップサック問題と動的計画法 動的計画法の一番親しみやすそうな例として「ナップサック問題」というのがよく取り上げられます。 こんな感じの問題です。 今ここに様々な大きさの品物が置いてあるとします。そしてそれらの品物は各

    動的計画法とナップサック問題を学びたい人におすすめのサイト - ダウンロードたけし(寅年)の日記
    iww
    iww 2012/01/12
    動的計画法から逃げられないのか
  • 超!美味しく変換 - 料理の写真をおいしそうにするよ♪

    画像補正エンジン「AccuSmart™」について 「超!美味しく変換」に採用されている「AccuSmart™」(アキュスマート)は、明るさや光源の違いなど、その場の雰囲気に合わせてデジタルカメラ画像を最適化する自動補正技術です。 「超!美味しく変換」は、この定評あるエンジンを料理画像用に最適化しています。 料理がより美味しく見えるように、鮮やかさ、色合い、明るさなど写真の質感を自動で補正し、見たままの美味しさを画像に再現します。 about「AccuSmart™」 FoodPic! uses "AccuSmart™" technology. It optimizes your digital camera image to meet the place or the circumstances where the image was taken, including its brightn

    超!美味しく変換 - 料理の写真をおいしそうにするよ♪