タグ

ブックマーク / atmarkit.itmedia.co.jp (290)

  • インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT

    連載では、筆者が気になって調べてみた.NET関連技術を横断的に紹介していきたい。連載第1回となる今回は、インライン・メソッド・キャッシュについて取り上げる。そもそもなぜ筆者がインライン・メソッド・キャッシュについて調べようと思ったのか、まずはそこからお話ししよう。なお、コードはすべてC#のみで記述する。 ■次世代JavaScriptエンジン ここ数カ月、JavaScriptの高速化が注目を集めている。 MozillaファウンデーションのBrendan Eich氏が8月23日付けのブログで明かしたところによれば、Firefox 3.1に含まれる新しいJavaScriptエンジンの「TraceMonkey」は、JITコンパイラを搭載したものとなる。現在のところx86、x86-64、ARMをサポートしている。最適化前の現時点でもすでに、Firefox 3に比べてFirefox 3.1に組み込ま

  • Javaは「抽象クラス」で実装を上手に再利用できる

    Javaは「抽象クラス」で実装を上手に再利用できる:【改訂版】Eclipseではじめるプログラミング(15)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります インターフェイスとクラスの中間のようなもの? これまでの連載で、インターフェイスやクラスについて理解しました。インターフェイスは具体的な処理が書かれていないメソッドの型だけを宣言している、特別なクラスのようなものでした。インターフェイスを実装するクラスを用意すれば、プログラムの実装を簡単に変更できました。 ここで、Javaには「抽象クラス」という「インターフェイスとクラスの中間のようなもの」もあります。あ

    Javaは「抽象クラス」で実装を上手に再利用できる
  • 連載記事 「Oracleパフォーマンス障害の克服」

    障害発生! 問題切り分けはスピード勝負 Oracleパフォーマンス障害の克服(1) Oracleの障害発生時に、可能な限り短時間で問題を切り分け、適切な処置を施するために、管理者はどんな行動をとるべきか?

  • プログラムの品質を高めるためのアサーションとは?

    契約による設計(Design by Contract) プログラムの品質向上手法として、契約による設計(Design by Contract、以下DBC)という手法があります。DBCでは、あるオブジェクトに対するメソッド呼び出しを行っているとき、プログラムが正しく動作している際に満たされるべき条件として、以下の3条件を規定しておきます。 事前条件…… メソッド呼び出し時の引数が満たすべき条件 事後条件…… メソッドによる処理が終了した時点で満たすべき条件 不変条件…… メソッドによる処理により変化しないものを規定する条件 以上の3条件のうちいずれかの条件が満たされない場合、プログラムは正しく動作していない、つまりバグがあることになります。 例として、ある実数xの平方根yを計算するメソッドを作成する場合の事前条件と事後条件について考えます。実数xが0以上の値でなければ平方根を求めることができ

    プログラムの品質を高めるためのアサーションとは?
  • 「メーラで送信OKだがJavaMailで送信に失敗する。SMTPに接続できない。」(1) Java Solution - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

  • C#ラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(C#)」についての基礎文法を簡潔にまとめる。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではないので、じっくり学ぶには「連載:C# 3.0入門 第1回 ラムダ式」を参照してほしい)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 C#基礎文法最速マスター:n

  • 第2回 Webアプリ改造の前に「速習! jQuery/jQuery UI」(1/3) - @IT

    連載:改造WebアプリケーションUIビフォー/アフター 第2回 Webアプリ改造の前に「速習! jQuery/jQuery UI」 葛西秋雄 2010/03/05 はじめに 前回では、ASP.NETのデータ・コントロールを利用した3階層のWebアプリケーションである「ITブック」を紹介しました。今回は第3回の準備編として、jQueryのAPIとjQuery UIのプラグインの使い方をざっくり理解していただきます。 jQueryのHello World jQueryは、米国のJohn Resig氏が中心となって開発したJavaScriptのライブラリです。わずか数行のコードを記述するだけでアニメーションなどのエフェクトをWebアプリケーションに組み込むことができます。 jQueryはDOM(Document Object Model)の要素を検索したり、属性を書き換えたりするためのAPIを豊

  • 「オブジェクト指向分析・設計?」(1) アーキテクチャ - @IT

    るぱんです。 お知恵を拝借したいので宜しくお願いします。 具体的に 「ドメイン分析」とは? 「ロバストネス分析」とは? その他のオブジェクト指向分析・設計方法の種類(キーワードとして) 「ピンポイントでこれだ!こうやるんだぁ!」っていうのが少ないと思います。 皆さんの意識をお伺いしたいです。 他に参考となるHPや書籍が有れば教えて頂きたいです。 探したんですが、トッパン出版は絶版・・・・。 読みたいタイトルのがおおいんだけどなぁ・・・。(「OOA」や「OOD」) るぱんさま 意識調査だと思えばよろしいでしょうか。 ということで、私が考えているあたり。 1.ドメイン分析 いわゆるオブジェクト指向開発手法は、要求分析、主にユースケース分析からはじまりますが、実際のところ、客先の常識を知らないことにはユースケース分析も話にならない。 ということで、「客先の常識を整理しておきましょう」というこ

  • AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築

    AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築:ユカイ、ツーカイ、カイハツ環境!(12)(1/3 ページ) 「AWS Toolkit for Eclipse」でツーカイAmazon EC2操作 クラウドプラットフォームの代表格であるAmazon EC2(Elastic Compute Cloud、以下、「EC2」)をEclipseから利用するプラグインとして、「AWSAmazon Web Service) Toolkit for Eclipse」(以下、「AWS Toolkit」)がAmazonから提供されているのをご存じでしょうか(参照:Eclipse中でAmazon EC2向けJava開発が完結)。 AWS Toolkitを利用すると、Eclipse上で作成したWebアプリケーションを簡単にEC2上にデプロイできます。また、これにより複数のWebサーバ

    AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築
  • Javaパフォーマンスチューニングのルール

    記事は、HP-UX Developer Edgeに掲載された記事を株式会社アットマーク・アイティおよび記事の筆者が独自の判断のもとに加筆・修正したものです。 この連載では、Javaアプリケーションのパフォーマンスチューニングについて、さまざまなテクニックやツールの使い方を紹介していきます。連載の第1回では、パフォーマンスチューニングにおける基的ルールや、HPが提供する各種のJavaパフォーマンス・ツールの使い方を説明します。なお、今後の連載では、JVMレベルにとどまらず、OSのカーネル・パラメータやネットワーク・パラメータのレベルでのチューニング方法も解説します。また、より高度なチューニング技法として、JVMのガベージ・コレクションやスレッド競合に注目する方法も紹介する予定です。 連載予定 第1回 Javaパフォーマンスチューニングのルール 第2回 Javaのガベージ・コレクション

    Javaパフォーマンスチューニングのルール
  • ファイルアップロード/ダウンロードに潜むわな- 大容量、高負荷時の注意点 -

    今回のワンポイント Webシステムにファイルアップロードやダウンロード処理を取り入れているケースは多い。また、世の中にも、いくつかのサンプルソースや参考文献が出回っており、開発も行いやすいといえる。しかし、利用する場合には、アプリケーションサーバ全体の性能劣化やタイムアウトといったいくつかの問題を考慮することが重要だ。実際に発生したトラブル事例を交え、その問題点や注意事項について解説する。 ファイルアップロード/ダウンロード処理に潜むわなとは? ファイルアップロードやダウンロードといっても、小さなファイルを扱っている場合は問題になる可能性は低い。しかし巨大なファイルを扱う場合や、通信回線の品質が悪く、ファイルアップロードやダウンロードにかかる時間が長い場合には、注意が必要である。 このような場合、以下の問題が発生する可能性がある。 サーバリソースの問題 無応答問題 タイムアウト問題 以降で

    ファイルアップロード/ダウンロードに潜むわな- 大容量、高負荷時の注意点 -
  • パフォーマンスチューニングの定石を知る

    「アプリケーション・サーバを使いJ2EEべースのWebアプリケーションを構築できたのはいいが、どうも来のパフォーマンスが出ていない」とは、よく聞く話である。連載では、そういった事態に遭遇した場合に、具体的にどのように対処してパフォーマンスを向上させるかについて解説していく。2回は、「パフォーマンスが出ない!」という場面で、具体的にどのような対処をとったら良いのか、そのオーバービューを紹介しよう。具体的なチューニング手法は、第3回以降で詳細に解説していく。(編集局) (1)ボトルネックを探る パフォーマンスチューニングの実際は、まずはボトルネックとなっている場所を探すことから始めます。はじめにボトルネックの目星を付けますが、どの場面で性能が出ないのかがポイントとなります。性能の評価には、負荷テストとプロファイリングを行います。 ボトルネックの目星を付ける パフォーマンス・チューニングを行

    パフォーマンスチューニングの定石を知る
  • データモデリングは「できるところ」から始めよう

    全12回の連載もいよいよ今回で最終回です。最終回では、データモデリングを始めるにあたってのポイントをお話しします。 どこから始める? データモデリング作業 プロジェクトを発足して「さぁ、やるぞ!」と、気合いを入れてデータモデリングを開始することも必要ですが、なかなかそういうタイミングに巡り会う機会がないこともあります。機会がないからといって、そのまま放置され、データモデリング自体が意識の彼方へ置き去りになってはいけません。 データモデリングは大上段に構えることなく「できるところから始める」という姿勢で取り組むこともできるのです。大切なのはデータの視点でモノを考えるという意識付けです。 日々システム業務を行われている方であれば、「過去5年間の設置場所別の売上実績リストが欲しい」といった、システムに関する改善要望が複数のユーザー部門から数多く寄せられていることと思います。このように改善要求があ

    データモデリングは「できるところ」から始めよう
  • SQLライクにHadoop Hiveを使い倒す!

    パーティションを利用する 今回は少し凝ったテーブルを定義をしてみましょう。 郵便番号データは毎月更新されるので、テーブル指定時にバージョンも指定できるようにします。このような場合、Hiveではパーティションを使います。 以下に郵便番号を保存するテーブル「zip」を定義しますが、日付型DATEのパーティションverを設定するようにします。 hive> CREATE TABLE zip (zip STRING, pref INT, city STRING, town STRING) > PARTITIONED BY (ver DATE) > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > LINES TERMINATED BY '\n'; OK Time taken: 0.128 seconds

    SQLライクにHadoop Hiveを使い倒す!
  • 可用性を高めるOpen HA Cluster

    可用性を高めるOpen HA Cluster:OpenSolarisで始めるブログサーバ構築(5)(1/3 ページ) この連載では、サーバOSとして十数年発展してきた「Solaris」をオープンソース化した「OpenSolaris」を紹介し、ブログサーバ「Roller」と組み合わせて運用していくうえで有用なさまざまな知識を紹介していきます。(編集部) 第2回「Cool Stackで手軽に『SAMP』」から第4回「一瞬でのバックアップを実現するSolaris ZFS」までで、Solaris ContainerやZFSなどといったSolaris/OpenSolarisに備わっているエンタープライズ向けの機能や特徴を紹介し、その技術をブログサーバへ応用する方法について解説しました。 今回は、エンタープライズ向けクラスタリングソフトウェアを導入して、高可用性を備えたブログサイトを構築する方法を紹介

    可用性を高めるOpen HA Cluster
  • 連載:アプリケーション・アーキテクチャ設計入門 第5回(最終回) 物理配置および運用上の要求(1/4) - @IT

    はじめに さて、今回は連載の最後を締めくくる、Application Architecture for .NET(以下AAfN)の最終章(APPENDIXを除く)となる「物理配置および運用上の要求」を解説する。 ここまでの章では、アプリケーション・アーキテクチャを論理階層(レイヤ)の面から取り上げてきた。この論理階層(レイヤ)は、アプリケーションの中に含まれるさまざまな機能について語るには都合がいいが、分散アプリケーションとして複数台のコンピュータに配置する際には必ずしも論理階層(レイヤ)のとおりに分割されるわけではない。 どうして、論理階層(レイヤ)と物理階層(ティア)との間に違いがでるのだろうか。それは、論理階層(レイヤ)への分割と物理階層(ティア)への分割では、目的が異なるからである。論理階層(レイヤ)への分割は、カプセル化や抽象化といったテクニックで複雑なアプリケーション・システム

  • natテーブルを利用したLinuxルータの作成

    はじめに 今回は、iptablesのnatテーブル(関連記事)を使ったNATおよびNAPT機能を解説します。こうした機能を使えばパケットのIPアドレス情報を書き換えることができます。つまりiptablesを駆使すれば、市販されているブロードバンドルータと同等、またはそれ以上のルータを作り上げることができるのです。 関連リンク →Linuxで作るファイアウォール[パケットフィルタリング設定編] http://www.atmarkit.co.jp/flinux/rensai/security05/security05a.html →連載記事 「習うより慣れろ! iptablesテンプレート集」 http://www.atmarkit.co.jp/flinux/index/indexfiles/iptablesindex.html →連載記事 「習うより慣れろ! iptablesテンプレート集

    natテーブルを利用したLinuxルータの作成
  • Webの表示速度を遅くする「SSLハンドシェイク」とは

    Webの表示速度を遅くする「SSLハンドシェイク」とは:現場にキく、Webシステムの問題解決ノウハウ(3) 連載は、日立製作所が提供するアプリケーションサーバ「Cosminexus」の開発担当者へのインタビューを通じて、Webシステムにおける、さまざまな問題/トラブルの解決に効くノウハウや注意点を紹介していく。現在起きている問題の解決や、今後の開発のご参考に(編集部) 知っていますか? SSLハンドシェイク Webアプリケーションで提供するWebページにSSLを適用した場合、SSLでは通信相手の認証/通信内容の暗号化などの負荷の高い処理が実行されるため、WebページのWebブラウザに表示される速度が遅くなることがある。この現象は、SSLセッションを再利用して、「SSLハンドシェイク」(上記の認証/暗号化を含んだ一連の処理)を簡略化することで、解決できる場合がある。 今回は、それらの問題を

    Webの表示速度を遅くする「SSLハンドシェイク」とは
  • 「基本設計書の承認後」(1) プロジェクト管理 - @IT

    お世話になります。 基設計書はお客様に承認をもらいました。 その後、詳細設計書を落とそうと思った時に、基設計書の中に不適なロジックがありました。 その時、 詳細設計書の作成側として、不適なロジックのところを補完し(ある程度ロジック追加)、作っていくのですか。 それとも、 基設計書はすでに承認済みのもので、不備なロジックのまま、詳細設計書に落とすのでしょうか。 先日、私が「承認済みのものですから、間違っても、詳細設計に落とすのだ」と現場の方に言われて、当、これっていいのですか?

  • @IT:.NET TIPS

    Tech TIPS(旧Windows TIPS)」では、WindowsクライアントやWindows Serverを中心に、クラウドサービスやAndroidスマートフォン/タブレット、iPhoneiPad(iOS)、Office、スクリプトなどの「テクノロジ」をビジネスシーンで活用するためのテクニックや基礎知識を解説しています。

    @IT:.NET TIPS