こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

HttpServletとjsp負荷はどっちが高い?

◆全く同じ処理をさせたとき、サーバーの負荷は変わるのでしょうか?

Aの処理のあと、Bの処理をして、その後Cの処理をさせるとき、
(1)HttpServletを継承したクラスから呼ぶか?
(2)jspで呼ぶか?
でサーバ負荷は変わるのでしょうか?

ファッション層の処理を、
案1◆コントローラ層部分が呼んで、結果を踏まえて処理制御して、、
 という形にするか?

ファッション層の処理を、
案2◆View層部分に呼ばせるか?

で、パフォーマンス観点で、どう判断すれば良いかわからず困っています。

※もし良ければ「構成」の観点でも、何か「こうあるべき」的なものがあると、それもご教授頂けますと幸いです。
.

投稿日時 - 2018-08-09 01:19:29

QNo.9525897

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

複数の人数で開発する場合に場合に、「Model、View、Controller」に分けます。
Model(Enterprise JavaBeans)はデータベースが得意な人が担当します。
View(JavaServer Page)はデザイナーが担当します。
Controller(Servlet)はデータベースが不得意な人が担当します。
個人でプログラミングする場合は、そこまで厳密に分ける必要は有りません(もちろん分けても良いでしょうが、「JavaServer Page」だけでプログラムしても良いでしょうし、「Servlet」だけでプログラムしても良いでしょう)。

>HttpServletとjsp負荷はどっちが高い?

下記ページには「実は、JSPとサーブレットは技術的には同じもの」とされているので、ほぼ同等と思われます。

初めてのWebアプリケーション・サーバ
http://www.atmarkit.co.jp/fjava/rensai/was05/was05_1.html

>サーブレットは最初のHTTPリクエストによって初期化され、それ以降はメモリ上に常駐し、マルチスレッドでサービス処理のみを実行するようになります。そして、HTTPリクエストが来なくなると消滅処理が実行され、メモリ上から消滅します。

>実は、JSPとサーブレットは技術的には同じもので、違いはその記述方法にあります。

JavaによるWebアプリケーション入門
http://www.wakhok.ac.jp/~tomoharu/web2004/text/index_c10.html

ざっくりJava JSP/サーブレット
https://qiita.com/kazukichi/items/4325b64450f93f04e316

ServletとJSP、Beanのうまい連携方法を教えてください
http://www.atmarkit.co.jp/fjava/javafaq/jsp/jsp05.html



ちなみに知らない間に「Thread」は非推奨になっているようです。

Java EE 7で並列処理がケタ違いに速くなる! 使いこなしのポイントは?──Java Day Tokyo 2013レポート
https://blogs.oracle.com/wlc/java-ee-7-java-day-tokyo-2013

>Java EE 7では、「Concurrency Utilities for Java EE」の導入により、マルチコア・プロセッサの能力を余すことなく引き出し、並列処理を格段に速く行えるようになる。

↑このJava EE(Enterprise Edition)はサーバー側の開発環境の話です。

>2004年にJava SE 5でConcurrency Utilitiesを導入。

↑このJava SE(Standard Edition)はクライアント(一般の個人のPC)側の開発環境の話です。

>2011年にリリースされたJava SE 7ではFork/Joinに対応。さらに、2014年にリリース予定のJava SE 8ではラムダ式をサポートし、これまで以上に並列処理が簡単に記述できるようになるという。

>「スレッド処理に関して、いまだにJavaの登場当初からのnew Thread(r).start(); などと書いているプログラムを多く見かけるが、もうこのような実装はやめたほうがよい」とアドバイスした。

>そこで現在、スレッドを直接生成する方法に代わって推奨されているのが、Java SE 5 から導入されたConcurrency Utilitiesである。Concurrency Utilitiesは並列処理の実装を簡素化するために導入されたAPIで、これを利用することによってスレッドのライフサイクル管理が簡単になるほか、スケーラビリティやパフォーマンスが大幅に向上するのだという。
>このデモでは、シングルスレッドやマルチスレッドのプログラムが256個のうち一部のプロセッサしか利用できないのに対して、Concurrency Utilitiesを使った場合は256個のプロセッサの負荷がほぼ同時に限界まで達し、瞬時に処理を終えることが確認できた。
>「Javaはパフォーマンスが悪いという声を聞くことがあるが、それは間違い。パフォーマンスが悪いのは、いまだに古いやり方でプログラムを書いているからにすぎない。Concurrency Utilitiesでマルチコア・プロセッサの能力をフルに使い切れば、Javaは驚異的なパフォーマンスを発揮する」

投稿日時 - 2018-08-15 21:40:25

あなたにオススメの質問