私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレPHP関連の書籍 第7版
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>748
違うだろw
元々はPHPの知識が、他の言語に応用が効くかという話
> 712 名前:nobodyさん[sage] 投稿日:2012/08/18(土) 16:59:50.77 ID:???
> PHPを構成している言語機能はPHP特有じゃなくて、
> 他の言語でも見られるものがほとんどなのに、
> 他の言語で役に立たないというのは理解できないを通り越して
> 間違ってるだろうな。
違うだろw
元々はPHPの知識が、他の言語に応用が効くかという話
> 712 名前:nobodyさん[sage] 投稿日:2012/08/18(土) 16:59:50.77 ID:???
> PHPを構成している言語機能はPHP特有じゃなくて、
> 他の言語でも見られるものがほとんどなのに、
> 他の言語で役に立たないというのは理解できないを通り越して
> 間違ってるだろうな。
>>750
すっかり、PHPとは関係ない話になったなw
デザインパターンの話じゃないか。
言語関係なくマルチプロセス環境ではシングルトンは複数できてしまうもの
シングルトンというのは、同一のプロセス内において
オブジェクトが一つという定義であり、
PHPでも同一のプロセス内でオブジェクトを一つにできる。
すっかり、PHPとは関係ない話になったなw
デザインパターンの話じゃないか。
言語関係なくマルチプロセス環境ではシングルトンは複数できてしまうもの
シングルトンというのは、同一のプロセス内において
オブジェクトが一つという定義であり、
PHPでも同一のプロセス内でオブジェクトを一つにできる。
PHPではマルチスレッド言語の感覚でシングルトンは使うなということ。
馬鹿なバグの原因になる。
当たり前だが、ネットでころがっている他の言語の説明は鵜呑みにするな。
馬鹿なバグの原因になる。
当たり前だが、ネットでころがっている他の言語の説明は鵜呑みにするな。
>>716
こいつはwww 何言っているの?
こいつはwww 何言っているの?
探せばいろいろ出てくると思うけど、
http://www.02.246.ne.jp/~torutk/cxx/designpattern/singleton.html
> GoF本の実装の問題
>
> GoF本の実装例のコードが抱える問題点を列挙します。
>
> マルチスレッド安全性がない
> if (instance == 0) { // (1)
> instance = new Singleton; // (2)
この人も書いているように、オリジナルのシングルトンは
マルチスレッド対応されてない。
http://www.02.246.ne.jp/~torutk/cxx/designpattern/singleton.html
> GoF本の実装の問題
>
> GoF本の実装例のコードが抱える問題点を列挙します。
>
> マルチスレッド安全性がない
> if (instance == 0) { // (1)
> instance = new Singleton; // (2)
この人も書いているように、オリジナルのシングルトンは
マルチスレッド対応されてない。
>>753
言ってる意味があべこべだな。
マルチスレッド言語では、シングルスレッド言語のような感覚で
シングルトンは使うな。馬鹿なバグの原因になる。
これが正解じゃないか。
PHPはシングルスレッド言語だから、安心して使っていい。
言ってる意味があべこべだな。
マルチスレッド言語では、シングルスレッド言語のような感覚で
シングルトンは使うな。馬鹿なバグの原因になる。
これが正解じゃないか。
PHPはシングルスレッド言語だから、安心して使っていい。
>>755
お前、馬鹿じゃないの?シングルトン、公式サイトですら否定しているだろ
お前、馬鹿じゃないの?シングルトン、公式サイトですら否定しているだろ
PHP公式サイトでシングルトンの意義疑っているから。
リソース共有しないPHPでは意味ないかもって。
リソース共有しないPHPでは意味ないかもって。
>>756
Java言語だったらシンプルだよ。
Java言語だったらシンプルだよ。
>>763
いや、だから、プロセスが違えば
他の言語のシングルトンも、マルチトンになるんだよ。
嘘だと思ってるならやってみな。
CLIアプリでいいから、Javaでシングルトン作って、
そのプログラムを2つ以上実行して、
複数のプロセス間で、オブジェクトが一つなのか
複数なのか確認してみ。
いや、だから、プロセスが違えば
他の言語のシングルトンも、マルチトンになるんだよ。
嘘だと思ってるならやってみな。
CLIアプリでいいから、Javaでシングルトン作って、
そのプログラムを2つ以上実行して、
複数のプロセス間で、オブジェクトが一つなのか
複数なのか確認してみ。
PHPで「マルチトン」ではないシングルトン実現のためには外部キャッシュシステムを使えばいいんだが、
外部キャッシュ使える環境ならPHP使う意味も無い。
外部キャッシュ使える環境ならPHP使う意味も無い。
>>766
君何言ってるの?それ当たり前じゃん。
君何言ってるの?それ当たり前じゃん。
>>767
PHPっていうか、マルチプロセス全般の話だよね。
マルチプロセスでシングルトンを使うには
確かに外部キャッシュシステムなんかを使えばいい。
memcachedとか。
でもそうすると、すべてのプロセスで共通のリソースを使うってことで
その部分がシングルポイントになりボトルネックとなる。
それではスケールしないシステムになってしまう。
つまり、シングルトンという仕組みそのものが、
時代遅れな設計。
そしてそのシングルトンを否定しているPHPは
将来を見据えた言語ということ。
PHPっていうか、マルチプロセス全般の話だよね。
マルチプロセスでシングルトンを使うには
確かに外部キャッシュシステムなんかを使えばいい。
memcachedとか。
でもそうすると、すべてのプロセスで共通のリソースを使うってことで
その部分がシングルポイントになりボトルネックとなる。
それではスケールしないシステムになってしまう。
つまり、シングルトンという仕組みそのものが、
時代遅れな設計。
そしてそのシングルトンを否定しているPHPは
将来を見据えた言語ということ。
PHPの公式サイトではPHPにおけるシングルトン使用には疑問を呈されています。
>>770
だよね。
シェアードナッシングだからリソースを共有しない。
だからたとえ同じデータでも毎回データベースなどに取りにいけばいいし。
共有データのために一回のアクセスで済むところを何千回もアクセスすればいいんだよ。
だよね。
シェアードナッシングだからリソースを共有しない。
だからたとえ同じデータでも毎回データベースなどに取りにいけばいいし。
共有データのために一回のアクセスで済むところを何千回もアクセスすればいいんだよ。
そう。リソースを共有できないため、データベースへ超絶アクセスだ。
シェアードナッシングを実現している
PHPの代表的なアプリとしてはOpenPNE。ついでWordPressなどがある。
これらは次世代型のシェアードナッシングアプリであるな。
シェアードナッシングを実現している
PHPの代表的なアプリとしてはOpenPNE。ついでWordPressなどがある。
これらは次世代型のシェアードナッシングアプリであるな。
>>774
データベースへ超絶アクセスする。
これをシングルトンで解決しようと考える奴はイケてない。
なぜなら負荷分散のために、アプリサーバーを
複数台構成にした時、シングルトンでは解決できないからだ。
つまりシングルトンは何も意味が無い。
これがシングルトンが否定されてる理由の一つ。
データベースへ超絶アクセスする。
これをシングルトンで解決しようと考える奴はイケてない。
なぜなら負荷分散のために、アプリサーバーを
複数台構成にした時、シングルトンでは解決できないからだ。
つまりシングルトンは何も意味が無い。
これがシングルトンが否定されてる理由の一つ。
>>776
そのとおりだよ。
だからリソース共有のために
memcachedなどを使う。
シングルトンでは、リソース共有といっても
複数のスレッドで共有するのが限界で、
プロセスが違っていたり、サーバーが違っていたりした場合
共有できないからね。
そのとおりだよ。
だからリソース共有のために
memcachedなどを使う。
シングルトンでは、リソース共有といっても
複数のスレッドで共有するのが限界で、
プロセスが違っていたり、サーバーが違っていたりした場合
共有できないからね。
いやいやシングルトンなんて使わなくてもいいけど、
シェーアードナッシングってキツイくね?
君がいうアプリサーバーを複数台にしても
OpenPNE君とか悲惨だもんね。
複数台構成にする規模だとPHPを使う意味はないからね。
シェーアードナッシングってキツイくね?
君がいうアプリサーバーを複数台にしても
OpenPNE君とか悲惨だもんね。
複数台構成にする規模だとPHPを使う意味はないからね。
>>780
> シェーアードナッシングってキツイくね?
きつかったとしてもやらないといけない。
シングルポイントがあれば、そこが一つダウンしただけで
サービス全体が停止してしまう。
最近のクラウドサービスは、シェーアードナッシングか
それに近い状態になってる。
> シェーアードナッシングってキツイくね?
きつかったとしてもやらないといけない。
シングルポイントがあれば、そこが一つダウンしただけで
サービス全体が停止してしまう。
最近のクラウドサービスは、シェーアードナッシングか
それに近い状態になってる。
>>783
そのFacebookがPHPを使って
言語よりもキャッシュサーバーが重要って言ってるんだが。
キャッシュがスケーラビリティに大きな役割を果たしている
http://www.publickey1.jp/blog/09/facebook.html
そのFacebookがPHPを使って
言語よりもキャッシュサーバーが重要って言ってるんだが。
キャッシュがスケーラビリティに大きな役割を果たしている
http://www.publickey1.jp/blog/09/facebook.html
>>788
ごめん、それかなり古い。今はHadoop系。
ごめん、それかなり古い。今はHadoop系。
>>790
そんなことは調べているし、実践している。
しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。
アプリが原因とも言えるがより深い原因はリソース共有できない言語に由来するよね。
こういう場合はどうしたらいい?
そんなことは調べているし、実践している。
しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。
アプリが原因とも言えるがより深い原因はリソース共有できない言語に由来するよね。
こういう場合はどうしたらいい?
>>793
> しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。
まずお前の勘違いから正していこうか。
あべこべなことを言ってるから話が進まない。
一言で言えば、シェアードナッシングは高速なGoogleが採用している設計
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%82%A2%E3%83%BC%E3%83%89%E3%83%BB%E3%83%8A%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
シェアード・ナッシング・モデルはスケーラビリティの観点からウェブ開発において頻繁に用いられる。
Google社が例示したように、純粋なシェアード・ナッシング・モデルシステムは廉価な
コンピュータを追加することによりほぼ無限にスケールすることが可能である。
それはシステムの処理速度を低下させる単一のボトルネックが無いからである。
Google社はこれをshardingと呼んでいる。典型的なシェアード・ナッシング・モデルシステムにおいては、
データは異なるデータベースの多数のノードに分散されるか(この場合ユーザやクエリごとに異なるコンピュータを割り当てる)、
あるいは何らかの同期化プロトコルを用い、全てのノードにアプリケーションデータのコピーを持たせる形をとる。
これはdatabase shardingと呼ばれるものである。
> しかしつまるところ、「シェアードナッシング」だから遅いことがわかっている。
まずお前の勘違いから正していこうか。
あべこべなことを言ってるから話が進まない。
一言で言えば、シェアードナッシングは高速なGoogleが採用している設計
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%82%A2%E3%83%BC%E3%83%89%E3%83%BB%E3%83%8A%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
シェアード・ナッシング・モデルはスケーラビリティの観点からウェブ開発において頻繁に用いられる。
Google社が例示したように、純粋なシェアード・ナッシング・モデルシステムは廉価な
コンピュータを追加することによりほぼ無限にスケールすることが可能である。
それはシステムの処理速度を低下させる単一のボトルネックが無いからである。
Google社はこれをshardingと呼んでいる。典型的なシェアード・ナッシング・モデルシステムにおいては、
データは異なるデータベースの多数のノードに分散されるか(この場合ユーザやクエリごとに異なるコンピュータを割り当てる)、
あるいは何らかの同期化プロトコルを用い、全てのノードにアプリケーションデータのコピーを持たせる形をとる。
これはdatabase shardingと呼ばれるものである。
>>790
OpenPNEってアクセスするだけで相当なSQLを発行するって知っている?
デフォルトでインストールしてデバッグモードで調べるといいよ。
複数台構成にしてもあれだけSQLが多かったらどうにもならないよ。
OpenPNEってアクセスするだけで相当なSQLを発行するって知っている?
デフォルトでインストールしてデバッグモードで調べるといいよ。
複数台構成にしてもあれだけSQLが多かったらどうにもならないよ。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- PHP関連の書籍 第5版 (1001) - [85%] - 2008/6/19 9:18
- PHP関連の書籍 第6版 (1001) - [85%] - 2011/12/26 18:16 ○
- PHP関連サイト (177) - [31%] - 2017/12/31 9:31
- PHP上級者が集まるスレ (612) - [17%] - 2021/4/21 0:00
トップメニューへ / →のくす牧場書庫について