質問編集履歴

3 質問1の内容に出展を記し、質問内容を修正しました

wieee

wieee score 11

2019/02/02 14:08  投稿

JavaやASP.Net、PHP、Rubyのシステム上での違いについて
WebシステムでJava、ASP.Net、PHP(Laravel)、Ruby(Rails)のシステムの違いについてお聞かせください。
JavaやASP.Net(MVCまたはCoreだが以降はASP.Netで書きます)はスレッドベース、PHPはプロセスベースだと聞きました。
### 質問1.
1. ASP.Netは、サーバーの.NetFramework上でexeファイルを起動しずっと起動している、つまり変数の値を保持している
2. PHPやRubyはWebからリクエストがあった段階でプログラムが起動し、処理が終了すると停止するので変数は破棄される
1. ASP.Netは、サーバーの.NetFramework上でexeファイルを起動しずっと起動している、つまりstaticな変数の値を保持している
2. PHPやRubyはWebからリクエストがあった段階でプログラムが起動し、処理が終了すると停止するのでstaticな変数でも破棄される
このような認識で合っているでしょうか?
これは以下の出展からそう感じました。
https://www.slideshare.net/ssuser741a3c/phpjava-82696204
上記の41~44です。
引用しますと
> Java(tomcat)はスレッドベースなので 自身のプログラム自体にキャッシュすることが出来た
> static変数にキャッシュした
> この結果「キャッシュサーバー」なしで運用も問題なく出来た
このスライド作成をした方のご意見なので正しくない可能性もありますが、JavaやASP.netではずっとstatic変数を保持しているものだと感じました。
これは合っているのでしょうか?
### 質問2.
そうすると、JavaやASP.Netはクライアントからリクエストがあったら即時に処理を返せる気がします。
また、変数に値を保持しているのでキャッシュのようにメモリから即レスポンスを返せる気がします。
「ずっと起動しているので処理が速い」「コンパイルしているのでそもそも速い」という感じでしょうか?
またそういう意味でPHPやRubyは大規模アプリにおいて動作が遅い感じでしょうか?
### 質問3.
JavaやASP.Netが一つ起動しているとして、そこに多くのクライアントから多くのリクエストが来た場合、一つのスレッドで処理するのでしょうか?
それともJavaやASP.Netはその処理分だけスレッドが起動する感じでしょうか?
変数に値を保持するといっても、クライアント毎に値が違うのでちょっとここがわかりません。
PHPやRubyでは、プロセスベースなのでクライアントからリクエストがあった段階でその都度プロセスが起動するのでクライアント毎(セッション毎)に
そもそもプロセスが違うのでセッション間で変数を共有することはないので問題ないのは理解しています。
### 質問4.
phpやRubyは基本的に処理が終わったら停止するのでWebサーバーの再起動くらいしか管理しなくていい気がしています。
しかしJavaやASP.Netでは実行ファイルがずっと起動しているのでメモリリークを起こしたりする心配があります。
そういう場合は実行ファイルを再起動することで対応するのでしょうか?
以上になりますが、質問内容に不備などありましたらご指摘いただけたらと思います。
どうぞよろしくお願い致します。
### 追記依頼の内容になります。
プログラムはコードの集まりであってコンピュータに対する命令(処理)を記述したもの、実行ファイルはコンパイルされた後のオブジェクトコードが記載されているファイル、またはコンピュータがプログラムとして解釈実行できるファイルのことです。
### 問題・課題
Webシステムを作る方法として、システムや基盤となるプログラム言語、フレームワークの選定をしたいと考えています。
まだ何もシステムを作っていなく計画段階なので具体的にコードでこの処理が困っているというわけではないのですが、インタプリタ言語とコンパイル言語で
それぞれ言語によって使うフレームワークも違うので一概にメリット・デメリットは難しいかもしれませんが、どのような仕組みの違いがあって、それがシステムにどのように影響がありメリットやデメリットがあるかを知りたいと考えています。
  • Java

    24774 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PHP

    38348 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Ruby

    17763 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • ASP.NET MVC Framework

    190 questions

    ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

2 問題・課題を追記いたしました

wieee

wieee score 11

2019/01/31 15:29  投稿

JavaやASP.Net、PHP、Rubyのシステム上での違いについて
WebシステムでJava、ASP.Net、PHP(Laravel)、Ruby(Rails)のシステムの違いについてお聞かせください。
JavaやASP.Net(MVCまたはCoreだが以降はASP.Netで書きます)はスレッドベース、PHPはプロセスベースだと聞きました。
### 質問1.
1. ASP.Netは、サーバーの.NetFramework上でexeファイルを起動しずっと起動している、つまり変数の値を保持している
2. PHPやRubyはWebからリクエストがあった段階でプログラムが起動し、処理が終了すると停止するので変数は破棄される
このような認識で合っているでしょうか?
### 質問2.
そうすると、JavaやASP.Netはクライアントからリクエストがあったら即時に処理を返せる気がします。
また、変数に値を保持しているのでキャッシュのようにメモリから即レスポンスを返せる気がします。
「ずっと起動しているので処理が速い」「コンパイルしているのでそもそも速い」という感じでしょうか?
またそういう意味でPHPやRubyは大規模アプリにおいて動作が遅い感じでしょうか?
### 質問3.
JavaやASP.Netが一つ起動しているとして、そこに多くのクライアントから多くのリクエストが来た場合、一つのスレッドで処理するのでしょうか?
それともJavaやASP.Netはその処理分だけスレッドが起動する感じでしょうか?
変数に値を保持するといっても、クライアント毎に値が違うのでちょっとここがわかりません。
PHPやRubyでは、プロセスベースなのでクライアントからリクエストがあった段階でその都度プロセスが起動するのでクライアント毎(セッション毎)に
そもそもプロセスが違うのでセッション間で変数を共有することはないので問題ないのは理解しています。
### 質問4.
phpやRubyは基本的に処理が終わったら停止するのでWebサーバーの再起動くらいしか管理しなくていい気がしています。
しかしJavaやASP.Netでは実行ファイルがずっと起動しているのでメモリリークを起こしたりする心配があります。
そういう場合は実行ファイルを再起動することで対応するのでしょうか?
以上になりますが、質問内容に不備などありましたらご指摘いただけたらと思います。
どうぞよろしくお願い致します。
### 追記依頼の内容になります。
プログラムはコードの集まりであってコンピュータに対する命令(処理)を記述したもの、実行ファイルはコンパイルされた後のオブジェクトコードが記載されているファイル、またはコンピュータがプログラムとして解釈実行できるファイルのことです。
プログラムはコードの集まりであってコンピュータに対する命令(処理)を記述したもの、実行ファイルはコンパイルされた後のオブジェクトコードが記載されているファイル、またはコンピュータがプログラムとして解釈実行できるファイルのことです。
### 問題・課題
Webシステムを作る方法として、システムや基盤となるプログラム言語、フレームワークの選定をしたいと考えています。
まだ何もシステムを作っていなく計画段階なので具体的にコードでこの処理が困っているというわけではないのですが、インタプリタ言語とコンパイル言語で
それぞれ言語によって使うフレームワークも違うので一概にメリット・デメリットは難しいかもしれませんが、どのような仕組みの違いがあって、それがシステムにどのように影響がありメリットやデメリットがあるかを知りたいと考えています。
  • Java

    24774 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PHP

    38348 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Ruby

    17763 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • ASP.NET MVC Framework

    190 questions

    ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

1 追記依頼の件です

wieee

wieee score 11

2019/01/31 15:18  投稿

JavaやASP.Net、PHP、Rubyのシステム上での違いについて
WebシステムでJava、ASP.Net、PHP(Laravel)、Ruby(Rails)のシステムの違いについてお聞かせください。
JavaやASP.Net(MVCまたはCoreだが以降はASP.Netで書きます)はスレッドベース、PHPはプロセスベースだと聞きました。
### 質問1.
1. ASP.Netは、サーバーの.NetFramework上でexeファイルを起動しずっと起動している、つまり変数の値を保持している
2. PHPやRubyはWebからリクエストがあった段階でプログラムが起動し、処理が終了すると停止するので変数は破棄される
このような認識で合っているでしょうか?
### 質問2.
そうすると、JavaやASP.Netはクライアントからリクエストがあったら即時に処理を返せる気がします。
また、変数に値を保持しているのでキャッシュのようにメモリから即レスポンスを返せる気がします。
「ずっと起動しているので処理が速い」「コンパイルしているのでそもそも速い」という感じでしょうか?
またそういう意味でPHPやRubyは大規模アプリにおいて動作が遅い感じでしょうか?
### 質問3.
JavaやASP.Netが一つ起動しているとして、そこに多くのクライアントから多くのリクエストが来た場合、一つのスレッドで処理するのでしょうか?
それともJavaやASP.Netはその処理分だけスレッドが起動する感じでしょうか?
変数に値を保持するといっても、クライアント毎に値が違うのでちょっとここがわかりません。
PHPやRubyでは、プロセスベースなのでクライアントからリクエストがあった段階でその都度プロセスが起動するのでクライアント毎(セッション毎)に
そもそもプロセスが違うのでセッション間で変数を共有することはないので問題ないのは理解しています。
### 質問4.
phpやRubyは基本的に処理が終わったら停止するのでWebサーバーの再起動くらいしか管理しなくていい気がしています。
しかしJavaやASP.Netでは実行ファイルがずっと起動しているのでメモリリークを起こしたりする心配があります。
そういう場合は実行ファイルを再起動することで対応するのでしょうか?
以上になりますが、質問内容に不備などありましたらご指摘いただけたらと思います。
どうぞよろしくお願い致します。
どうぞよろしくお願い致します。
### 追記依頼の内容になります。
プログラムはコードの集まりであってコンピュータに対する命令(処理)を記述したもの、実行ファイルはコンパイルされた後のオブジェクトコードが記載されているファイル、またはコンピュータがプログラムとして解釈実行できるファイルのことです。
  • Java

    24774 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • PHP

    38348 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Ruby

    17763 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • ASP.NET MVC Framework

    190 questions

    ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る