9月
18

以前C言語で、業務とはまったく関係のないお遊びプログラムを作っている時に、不可解な現象に悩まされました。 とある関数の内部で、呼び出し元の情報を書き換えて、関数を抜け出す時に本来の戻り先とは別の戻り先に制御を移すという、ちょっと変な処理を行うものです。 この時は何か目的があってプログラミングをしていたわけではなく、あまり深く考えもせずに作っていたので、最初はプログラムがバグってるのかな?と思っていました。 しかし、何をやってもコンパイル時に最適化オプションを付けた時だけ発生するので、気になり調査しました。

続きを読む »

8月
26

どんなプログラム言語でもそうなのですが、マルチスレッド下でプログラムを組むときは、シングルスレッドとは違うところに色々気を使わないといけません。 今回は、Javaマルチスレッドプログラムでは基本的なことですが(自分だけかもしれませんが)よく忘れて、不可解な動作に首を傾げてしまうポイントについて説明していきます。

続きを読む »

4月
16

現在のJavaでは資源の節約があまり意識されなくなってきていますが、 今でも少ない資源(メモリ・CPU・VRAM等のリソース)の下でJavaを使ったプログラムのニーズはあります。 例えば、今では誰もが持っている携帯電話や家電製品等の組み込み系がそれに当たります。 ここでは、携帯電話でのJavaアプリケーションを例にとって、リソースが少ない環境下で、以前に私が行ったJavaとは言いがたいドケチ・プログラミングの一例を紹介します。

続きを読む »

3月
21

最近のCコンパイラは、プログラマが意図して行った最適化よりも賢く、

最適なコードを生成するといいます。

昔「2の倍数で割るなら割り算使うより、シフト演算の方が早いからそう書け!」と言われたことがあります。確かに、div命令とsar命令ではクロック数はdiv命令の方が遥かに多かったと思いますが、実際のところそこまで意識する必要があるのでしょうか?

と、思いつつシフト演算を使っていたんですが、コンパイラの出力するコードを見る事はありませんでした。そこで実際にどの程度のものなのかを実験してみました。

続きを読む »


投稿者

開発者向けサイト

NTTドコモ
作ろうiモードコンテンツ
KDDI au
EZfactory
SoftBank
MOBILE CREATION
イー・モバイル
技術情報
WILLCOM
コンテンツサービス