スレ立てるまでもない質問はここで 152匹目
■ このスレッドは過去ログ倉庫に格納されています
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
前スレ
スレ立てるまでもない質問はここで 149匹目
https://mevius.5ch.net/test/read.cgi/tech/1529199088/
前々スレ
スレ立てるまでもない質問はここで 151匹目
https://mevius.5ch.net/test/read.cgi/tech/1541239698/
注意「〜と〜はどっちの方が○いですか?」みたいなのは
このスレの粘着荒らしですので無視してください 駿台 千里 でぐぐったら
千里中央校開校が出て来たでござる スレッドはアプリケーションに割り当てられた仮想アドレス空間内にスタック領域やスタックポインタの値をコピーして生成されるため、スレッド生成のために新たにメモリを確保するものではないと認識しています
つまり、アプリケーションに対して割り当てられるアドレス空間内にはあらかじめスレッド生成のための他に用途の無い空きアドレスが用意されているということですか? スタックポインタの値をコピー?
そんなことしたらまともに動かないだろ osの話だな
ここで聞くよりカーネルスレで聞いたほうがよさそう >>705
ありがとうございます
この板に来るのも初めてでどこで質問していいかわからずに困っていました
では失礼しました(-_-) >>703
アプリケーションがアクセスできる仮想空間はめっちゃ広いけど全てにメモリーが割当たってるわけじゃないぞ
〇〇バイト使うから割当ててくれって言ってから使えるようになる
OSによっては使えるよっと言っときながら実際に使おうとしたらゴメン今メモリー足りんからお前死んどいてくれって言う鬼畜なものもあるw 循環的複雑度の計算でさ、ブロックとJavaScriptの即時関数はどう計算するのが良いと思う?
例えばさ、これみたいな時って、fooとbarは別関数として計算するべきだろうか?
function foo() {
・・・
function bar() {
・・・
}
bar();
・・・
}
一般的には別関数な気がする。もしそうなら、これも別関数だろうか?
単に無名関数になってるだけだよね。
function foo() {
・・・
(function() {
・・・
})();
・・・
}
でもその理屈だとさ、即時関数ってただ変数のスコープを作ってるだけとも言えるから
このブロックも別で計算するべきってことにならないか?
function foo() {
・・・
{
・・・
}
・・・
} 一緒に計算した方がいいと思う
関数の複雑性を評価して必要なテストの量を推測する目的なら
ローカル関数を独立してテストすることはできないからひとつのものとして評価した方が目的に適う
関数の品質を評価するという目的でも
ローカル関数からは親のローカル変数にアクセスできてしまうので独立した関数よりも複雑度を高める
ローカル関数はブロックに名前をつけて再利用できる分、関数化する前よりも複雑度が落ちるはず
このことはたとえばif文を含む2つの重複したコードをひとつのローカル関数として共通化した場合、複雑度は2から1に下がるので合致する
単なるブロックは経路数に全く寄与しないので循環的複雑度を考える上では無視でいい いや、純粋に経路の数を数えるならifを含むローカル関数を2度呼んだら親の複雑度は2上がるのか なるほど、テスト可能な単位で計測すべきか
その視点はいいわ。参考になった。 >>708
無名関数をその場で使うだけとかのレアケースは無視していいと思うよ
そんなのがゴロゴロあるならそっちの方が問題だし ベクター画像を自動作画するプログラムを作っているけどちょっと触らないと何処で何を描いているのか判らなくなっちゃう
直感的に画像とコードを結びつけにくいためだと思うけどどうすりゃいいんだ? >>713
タートルグラフィック、
グループ化、
極座標系
あたりを参照。 描画アルゴリズムをデータで表す(構造体などを使う)
描画データを座標変換(平行移動、回転、拡大縮小)する
描画データをグループ化する 例えば多角形はつながった線分の配列で表せる。
線分は始点と終点の座標で表せる。
円は中心点と半径で表せる。
平行移動は、座標値を足すとできる。
回転移動は、回転行列を使うとできる。
拡大縮小は、座標値に何かを掛け合わせるとできる。
描画する図形をデータにする。
よく使うデータをテンプレートにすれば、同じ図形をコピペできる。 ビットマップを使うと画像を扱うことができる。
拡張メタファイルとかSVGというのを使えば、印刷用紙に合わせた拡大縮小がスムーズにできる。 x87系の拡張精度って、いらない子扱いされてます? SVG
+1
SVGはもっと評価されても良いと思う ぺディアとかではほとんどSVGになってきてるし実務上の標準として評価されてると思う >>713
jupyterを使ってどの部分がどういう描画をしてるのかはっきりさせるようにするとか 5000行あるファイルの文字列すべてを
600回ほど文字列置き換え処理したらめっちゃ重くて処理中に落ちる
どうしたらいい... >>725
文字列の置き換え処理を文字列の積み上げ処理に変える。
もしくは、ファイルマッピングを使う。 処理中に落ちるのはメモリー不足かスタックオーバーフローか例外。
ファイルを一度に全部読み込むのを止めて比較的小さな単位ごとに処理する。 文字列の積み上げ処理なら、確定した文字列をファイルに書き込めばメモリー使用を節約できる。 visual studio2019で作ったflaskプロジェクトのルートフォルダってどこで設定されてるでしょうか? >>725
sed -f ではダメ?
Powershellで試しても2MB超のログで10秒掛からなかったし何か書き方が変なんだろうな
replace演算子を600回書いて1行ずつパイプしてるとか
JavaやC#ならStringBuilderをひとつだけnewするように気を付けて処理すれば1秒で終わるよ 1987年のゲーム見ると
どうしてもすごいと思ってしまう
過去のPCの技術を過小評価しすぎてるのかも
ゲームのデーターはHDDがないから焼き付け?
そのデータを読み込んでおくメモリーは当時ですでに十分にあったわけで?
一瞬で画面の画像をかえるCPUの速度
どれを見てもすごい気がするけど
当事の家庭用パソコンはしょぼかった気もするんだが。
現代と比べて
光ファイバー網とか通信の速度が劇的に上がり
CPUとかメモリーとかは当時としてはある程度結構なレベルにあったってことですかね?
光ファイバーとかない1998年あたりも画像をほぞんしたHDDでみることはふつうにできたわけだし。 今のjavaとかそういうオブジェクト言語と違って
ものすごい頭いい人しかゲーム作れなかった感じですか? どんなゲームをすごいと思ってるのか23の実例があれば ドラクエ123とかいろいろあるでしょ当時
ここまでの動きができるコンピュータがあるのかと思った
でもスマホは当時ないんですよね ファミコンは設計そのものがスプライト=動きに特化している
その分ミニマップとかミニレーダーが使えない
ボスコニアンとかバンゲリングベイが顕著
画面を分割してそれぞれ別のものを描画、ということがとても難しい
ついでに、パソコンに比べて豪華な音楽チップも同梱だからよりゲームっぽく見える
総評すると、ビジネス用の市販の汎用パソコンとゲーム専用コンピュータだと、ゲームならゲーム専用機に軍配が上がる
ついでに、ファミコンには当然不得意ジャンルもあって、SLGなんかはパソコンには負ける
なのでファミコンの得意分野はアクション、まさに「動き」
「動き」に特化したマシンだから汎用パソコンは「動き」では負ける
言い換えると、そこまでの「動き」をする汎用パソコンは無かった
だから「ここまでの動きができるコンピュータがあるのかと思った」というのは正しい ファミコン
スーパーファミコン
PS
PS2
は、それぞれいつの時代のパソコンと同格なんですか?
同じ価格のPCとして。
PSを2万円の本体価格とすると
2万円で同じプレイができるパソコンとなると何年先のPCなのかと。
ファミコンの場合が一番ききたい。
おそらくファミコン当時だと100万ぐらいのパソコンなら同じことできるとかそんな感じですか? >>731
>>642と同一人物だろ。いつまで同じ話を繰り返すんだ? https://www.youtube.com/watch?v=iRVqIhC-W40
ホビーパソコンのMSX2だとファミコンに近い
1985年発売、FS-A1で3万円
ファミコンが1983年、1.5万円
二年後に二倍の価格
https://www.youtube.com/watch?v=bT5p6Ero1j4
https://www.youtube.com/watch?v=kE5Xg2vRVTo
x68000のグラディウスとゼビウスだが、ファミコンを超えてアーケードと遜色なくなってる
x68000が1987年発売、40万円
ファミコン以上のアーケードのスペックが可能なマシンが、4年後40万円で入手出来る 当時のパソコンもおもってたよりそこそこの性能があったんですね
通信技術とHDDの技術が後々に大幅向上って感じで
他は十分要件としてかなり高いレベルで。
未だとフルスペックでPCをつかうことなどないですし
フロッピー大量に貸し借りしてパソコンのゲームしてた人がいた気がした なんか昔のPCやゲーム機がすごかった
みたいな一連の話には違和感があるけど?
貧弱な環境で何とか最適化する部分に
もちろん職人芸はあるんだろうけど
たんにスペックで言えば今と大差だぞ?
昔のPCで動画をエンコードしたら
実際はものすごい時間掛かるだろ?
動画再生もカクカクになったりとか
フロッピーなんて今のゲームなら
何千枚要るんだよって話になる
昔は回線も貧弱で今のソシャゲとかできないし
高速に絵が動いたからすごいの一点張りだけど
今時のゲームの高画質な3Dグラとかもないしで
どちらかというとやや懐古気味の論調にも感じる PS2は分解してもスゴかった
https://xtech.nikkei.com/dm/article/FEATURE/20090603/171186/
この記事が面白かったな
とりあえず高スペック製品積んどきゃ高性能になる自作PCと違って
各所でコストを抑えつつ要求水準を達成する設計、技術の凄さを垣間見た
これが最終型番では↓のように変貌するから更に驚きだわ
あのでっかいシールド板やヒートシンクはどこいった?
なぜソニーは「PlayStation 2」を子どもたちに分解させたのか? “分解ワークショップ”にて解体されたPS2は最終型番・未開封新品だった
https://news.denfaminicogamer.jp/kikakuthetower/180403 >>650
gtx1650+ryzen3600+32GBメモリ
がいいと思う
3Dゲーム作り始めて、本当にGPU性能足りないってわかってからGPUはアップグレードしたらいいし、
しばらくはGPU性能いらなさそうだから ムーアの法則はCPU速度、メモリ、HDDにも適用可能で
概算だけど、三年で二倍、10年で10倍になる
三十年前だと今の1000分の1、メモリは数Mだし
HDDは数100M、
ん? もっと少なかったような気もするが ファミコンの凄さに感動し衝撃を受けてしまった、ちょっとこだわりの強く人の話を聞かない傾向の人なんだろう
批判しても届かないので、それっぽく納得できる回答をあげるのがいいんじゃないか >>744
1990年頃に会社で買ったPC-9801DAはメモリー7.6MB、HDD100MBだったからまあ合ってるんじゃね?
色々込みで70万ぐらいしたと思うけど 一般人のコンピュータへの認識はこんなものなんだろう
情報工学や電子工学でコンピュータの歴史を学んでるわけではない人間の見方は大抵こうなる
つまり日本人の99%が彼と同じような感想をもってる
「当時のPCはショボかった」「それに比べてファミコンは高スペックに見えた」と こいつを見てくれ。
っ https://ideone.com/UlFL5l
こいつをどう思う?
ブロックソーティング重すぎて泣けるわ。 0~255を0~3の範囲に変換したいのですが、if文を使わないスマートな方法ってありませんか? >>750
255を3分割したときの1つの値が0~3では1に当たります >>750
> 0~255を0~3の範囲に変換したいのですが、if文を使わないスマートな方法ってありませんか?
正比例を習ったよね? >>752
ああ!正比例使えば良いんですね
やってみます x * 4 / 256
用途によっては x % 4 普通の正比例と違うのは値が離散的であること。
とりあえず、0から255までを三等分するときを考える。
255÷3==85.
0〜84は85個の整数。
その次は85〜(85+84)、つまり85〜169.
そのまた次は170〜(170+84)、つまり170〜254.
おおっと255が余った。これは離散的だから当たり前、256個の整数を3で割るから余りがでる。 キレイには割り切れない。キレイに分割することはあきらめて、比例の式を使うと (x*3)/255が得られる。
検算しよう。0は0に変換される。255は3に変換される。C言語では正の整数の割り算は切り捨てなので、254は(254*3)/255==2となる。こうなると3になるのは255だけになる。
これはまずい。となれば、3に変換される数を増やすために分子を少し大きくする。
(x*4)/255.
しかしこの式では255は4に変換されてしまう。そこで分母を大きくする。
(x*4)/256. Vimを勉強している者です。undoのuが何度押しても一つ前の作業しかもどりません。左下にbeforeとafter が交互に表示されて一つ以上前の状態に戻ることができません。どうすると二つ以上前の状態に戻れますか。 >>763
Vi互換方式になってると思われる
:help undo-two-ways
あとVimのことはVimスレで聞いたほうがいいよ
Vim Part29 http://mevius.5ch.net/test/read.cgi/unix/1550073259/ C#でstaticメソッドを静的なメソッドと書いてありましたが、動的なメソッドはなんていうんですか?また、動的なクラスはなんていうんですか? >>767
単に「メソッド」、あるいは「動的メソッド」 インスタンスメソッド
非静的クラス(non-static class) 非静的なメソッド
静的でないメソッド
格好つけようとしないで誤解の無いように普通に書けば良い そういえばC#とJavaの静的メソッドってのは歴史的経緯を多分に含んだ微妙なネーミングかもな
対義語である動的がフィットしない時点で命名としてはアヤしい
概念的にはclass method対instance methodと呼ぶべきもの
Delphiには動的(dynamic)メソッドと静的メソッドがあってちゃんと対比になってた たしかに非対称な名前ではあるが
そもそもインスタンスが
生成されるもので動的だから
そういう名前なんだろう staticは未来永劫の無限でありdynamicは刹那のものである >>774
無理に難しい言葉を使おうとして的外れなことを言っちゃうのは恥ずかしいぞ こんにちは。
ブロックソーティングのコードを書いています。
それで、だれか査読してもらえないでしょうか。
C++です。
https://ideone.com/gvJMJ5
主にデコード処理が良くわかりません。
よろしくお願いいたします。 ソースコードのメトリクス測定で、ファンクションポイントの
統一的な計算方法ってある?
俺が知ってるファンクションポイントはプロジェクトごとにバラバラで
はっきり言って適当な値(ポイント)を根拠にする信頼性が低い計算方法なんだが >>778
ファンクションポイントはソースから計算するものじゃないぞ
ソースから自動で計算するためにはすべてのコードにコメントやアノテーションでFP計算用の印を付けとかないと無理
FPは恣意性が入る余地が小さいから出来上がったシステムに対する計算結果がバラバラになるならそれはその組織の問題 >>779
俺もそう思ってるんだけね。まあその人が書いた文章が間違ってる可能性もあるんだが
「俺はファンクションポイントを計算したい」と。
「このツールはファンクションポイントを計測できる。」と主張してる。英語だけど
英語圏だと別の意味だったりするのかなぁ C# で string s があるとき
s.Length って何で uint じゃなくて int を返すんです? とりあえずintのぶっこめたほうが便利じゃん
uintのない言語だってあるんだよ
clsの仕様に依存してるせい
みたいなことをうだうだ議論してるな
https://duckduckgo.com/?q=why+c%23+string+length+is+int32+not+uint32&ia=web 仮に uint より int の方が便利って妥協するにしても
Int32 より Int64 にしなかったのは何故なんです? >>784
ファイルサイズなら64bit必要になるのも当然だが、メモリ上のstringに64bit必要になるような巨大なデータを突っ込むようなバカな使い方はしないで他の方法を使えということだろう。 業務アプリを作ってます。
画面上の項目の活性/非活性や表示/非表示の制御を保守性を高くして作りたいんですが今いちやり方が分かりません。
例えばある伝票の更新画面に、入力項目が20個あるとしてそれらの項目は各項目の入力内容によって活性状態、表示の有無が変わるとします。
上記のように様々なパターンがたある場合どのように制御すればいいのでしょうか?有名なデザインパターンみたいなものがあられば教えてください。
ちなみにフレームワークはASP.NET Webフォームになります。 >>786
デザインパターン的なものは知らないが、表示項目をグループ化、階層化して一方通行の依存関係を木構造で表してみたら? 相互循環するような関係だと破綻しやすいけど木構造ならそんなに難しくない。 >>780
少し興味があって調べてみたが手動のFPと
自動で計算するFP(AFP)は少し別物と捉えたほうがよさそう
https://www.omg.org/spec/AFP
このツールがAFPをソースから計算できると謳ってるけど精度は不明
https://www.castsoftware.com/research-labs/function-points
言語やフレームワークに応じたコードとFP要素のマッピングルールを使うっぽいけど
あんまり高い精度で計測できるとは思えないね >>786
各入力項目の状態のパターンとそれらが変化する条件のパターンを整理する
仮にデフォルト表示 + 活性でいけるとしたら
例えば各入力項目ごとに
非表示の条件リストと
非活性の条件リストを持てばいい
(計算量が気になる場合は条件リストをビットマスクで管理)
非表示と非活性のどちらを優先するかみたいなルールは
全体で共通化しておくか入力項目ごとに優先順リストを設定する C言語からやってる腐れた老害の私なんかは最初に意味/使い方が違うので混乱したけど
C言語のStaticは「静的」っていうより「固定的」って意味で使っていたので定数を表して
たんだけど、オブジェクト指向言語になってから意味論的に正しいような「const(constant)」を
定数に使うようになったのね
で、staticは「静的」=最初から定義されているって意味で使われるようになったので静的
○○って表現になった
なので静的メソッドだと動的メソッドって何ってなるけど、プログラムの中で固定的(静的)に
確保されているオブジェクトをすべて静的○○、それ以外のインスタンスで動的に作り出す
オブジェクトを便宜的に動的○○みたいな表現をしてるって感じかな
>>781
色々それっぽい理由があるのかもしれないけど、一番大きいのは古い言語では整数型は
何でもint、uintを使うならば意図して宣言しなさいみたいな仕組みだったし、特に昔からの
実装(文字列変数とか配列の要素数の表し方)と変える必然性も感じなかったってことじゃ
ないかな
>>784
>>785のいうこともあるかもしれないけど、今の所はまだ32ビットOSも存在するのでInt64
縛りにすると64ビットOS用のプログラムしか作れなくて困るんじゃないかな >>791
Cのstaticは定数じゃないよ
ローカル変数をstaticとした場合は前回関数呼び出し時の値を維持する変数になる
メモリ確保的にはstaticという、Low LevelなCにとっては自然な名称
static変数の対義語はauto変数 >>792
static:静的データ領域に確保、値を保持
auto:動的データ領域のスタック領域に確保、自動で破棄
malloc:動的データ領域のピープ領域に確保、手動で破棄
趣味でC言語勉強して簡単なWindowsアプリ作ってた時は
こういうイメージだったわ
間違ってるかもしれんけど >>791
8-bit CPUでも16ビットの整数が扱えるCPUは多い。32ビットでもそうだ。 CPUが扱ってるわけじゃなく
コンパイラが扱ってるんだよ 低能は語の日常的な意味やイメージに引きずられる
そういうのはマには向かない
とにかく仕様を100%理解しろ
必要なのはそれだけだ 32bitOSとかいう時のbit数はアドレス空間の大きさ
言語に64bit整数型があるかどうかとは関係ない
z80ターゲットのcコンパイラでもlongやdoubleが使えるのもある アドレス空間じゃなくてCPUモードやろ
16bit OSだったら、アドレス空間は16bitなんか? なんかずれてきたな
32bit環境でも64bit整数を扱えるのは
コンパイラ(やライブラリ)が32bit命令を組み合わせて64bit演算を実現してるから
複数の命令を組み合わせてるので
低速でしか動かない 結合と記憶域期間
static は静的記憶域期間
auto は自動記憶域期間
static は内部結合
extern は外部結合 ■ このスレッドは過去ログ倉庫に格納されています