問題タブ [underflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - EXP() を使用する Postgresql 計算でアンダーフローを防止/検出するにはどうすればよいですか?
EXP(x) 関数を使用するクエリで、pgsql からアンダーフロー エラーの範囲外の値を受け取りました。これをトリガーする x の値は? どうすればそれを防止または検出できますか?
objective-c - GC 環境でカスタム NSURLProtocol の _NSCFURLProtocolBridge で参照カウントのアンダーフローを回避する方法
基本はカスタムしてNSURLProtocol
ます。ではstartLoading
、[self client]
タイプは次のとおりです。
問題は、これをガベージ コレクション環境で実行することです。私はスクリーンセーバーを書いているので、ガベージコレクトを強制されています。ただし、_NSCFURLProtocolBridge プロトコルは常にスローするようです。
malloc: reference count underflow for (memory_id_here), break on auto_refcount_underflow_error to debug
デバッグ コンソールへのダンプの例は次のとおりです。
ScreenSaverEngine[1678:6807] client is <_NSCFURLProtocolBridge 0x20025ab00> {NSURLProtocol 0x200258ec0, CFURLProtocol 0x20029c400}
ScreenSaverEngine(1678,0x102eda000) malloc: reference count underflow for 0x20025ab00, break on auto_refcount_underflow_error to debug.
に対してアンダーフローが発生していることがわかります<_NSCFURLProtocolBridge 0x20025ab00>
。
私が中断するauto_refcount_underflow_error
と、スタックトレースが次の場所に戻るようURLProtocolDidFinishLoading:
です:
この問題はしばらくの間存在していたようですが、オンラインではまったく答えがないようです:
http://lists.apple.com/archives/cocoa-dev/2008/May/msg01272.html http://www.cocoabuilder.com/archive/message/cocoa/2007/12/17/195056
バグは、これらのリストされたバグについても、ガベージ コレクションされた環境でのみ表示されます。メモリの問題を引き起こさずにこれを回避する方法について何か考えはありますか? これはおそらく、NSURLProtocol の下にある CF タイプが不適切にリリースされたことと関係があると思いますか?
java - 一般的なアンダーフローとオーバーフローの例外
Javaでオーバーフローとアンダーフローの例外を取得しようとしていますが、すばらしいチュートリアルを取得できませんでした。具体的に学びたい
- それらは互いにどのように異なりますか?
- これらの例外のサブクラスは何ですか?
- どのシナリオでそれらがスローされますか?
- それらのどれをどのように処理できますか?
- それらに関連するベストプラクティスは何ですか?
便利なチュートリアルへのリンクは
binary - バイナリ加算。オーバーフローですか?
バイナリ値は2の補数形式です。
110001(-15)と101110(-18)を追加し、答えを6ビット整数で格納する必要がある場合、これはアンダーフロー/オーバーフローです。
c - 符号なし整数アンダーフローのCの動作に関する質問
符号なし整数のオーバーフローは、符号付き整数のオーバーフローとは異なり、Cで明確に定義されていることを多くの場所で読んだことがあります。
アンダーフローは同じですか?
例えば:
ありがとう。
どこにあるか思い出せませんが、符号なし整数型の算術演算がモジュール式であるとどこかで読んだので、その場合は-1 == UINT_MAX mod(UINT_MAX + 1)です。
c++ - filebuf :: seekoff()と相互作用するGNU C ++ filebuf :: underflow()への変更を説明する
私の会社の製品は、多くの認定されたLinuxハードウェア/ソフトウェア構成で動作します。歴史的に、使用されているコンパイラはGNUC++でした。この投稿の目的のために、バージョン3.2.3のベースラインについて考えてみましょう。これは、ソフトウェアがそのバージョンを通じて「期待どおりに機能した」ためです。
GNU C ++バージョン3.4.4を使用した、より新しい認定プラットフォームの導入により、これまでに見たことのないいくつかのパフォーマンスの問題が観察され始めました。少し掘り下げた後、エンジニアの1人がこのテストプログラムを思いつきました。
約751KB文字のログファイルに対して実行しました。以前の構成では、次の結果が得られました。
新しいバージョンでは、結果は次のようになります。
pubseekoff(0、ios :: cur)呼び出しをコメントアウトすると、過剰なunderflow()呼び出しがなくなります。したがって、明らかに、g ++の新しいバージョンでは、pubseekoff()を呼び出すとバッファが無効になり、underflow()が強制的に呼び出されます。
標準ドキュメントを読みましたが、pubseekoff()の言い回しは確かにあいまいです。たとえば、基になるファイルポインタの位置とgptr()の位置との関係は何ですか?underflow()の呼び出しの前または後?それにもかかわらず、いわば、g++が「中流で馬を変えた」ことは苛立たしいことだと思います。さらに、一般的なseekoff()でバッファポインタを無効にする必要がある場合でも、ftell()と同等のものが必要なのはなぜですか?
この振る舞いの変化につながった実装者間のディスカッションスレッドを誰かに教えてもらえますか?関連する選択とトレードオフについて簡潔に説明していますか?
追加クレジット
明らかに、私は自分が何をしているのか本当にわかりません。私は、オフセットが0で、seekdirがios :: curの場合に無効化をバイパスする方法があるかどうかを判断するために実験していましたが、移植性はありません。私は次のハックを思いつき、 filebufデータメンバー_M_fileに直接アクセスしました(これは私のマシンの3.4.4バージョンでのみコンパイルしたかったです):
ただし、100回のシークオフ試行ごとに位置を出力する診断では、毎回8192が生成されます。は?これはfilebuf自体のFILE *
メンバーであるため、ファイル位置ポインターがfilebufによって行われるunderflow()呼び出しと同期していると思います。なぜ私は間違っているのですか?
アップデート
まず、私の投稿のこの後半部分は、移植性のないハッキングに関するものであることを理解していることを強調しておきます。それでも、ここで核心を理解していません。電話してみました
代わりに、これは8192でスタックするのではなく、サンプルファイルを順調に進みます。
最終更新
私の会社の内部では、パフォーマンスへの影響を十分に減らすためのいくつかの回避策を作成しました。
外部的には、DavidKraussがGNUのlibstdc++ストリームに対してバグを報告し、最近、PaoloCarliniが修正をチェックインしました。コンセンサスは、望ましくない動作は標準の範囲内であるが、私が説明したエッジケースには合理的な修正があったというものでした。
StackOverflow、David Krauss、Paolo Carlini、そしてすべてのGNU開発者に感謝します!
mysql - MySQL エラー コード: 1264 行 1 の列 'count' の値が範囲外です
私はいくつかのMySQLコードを持っています:
の場合、これはカウントをゼロに設定する必要があります(count -1) < 0
。
エラーが発生します:
これは、count が unsigned int であるためです。signed int を使用すると機能します。
これは MySQL のバグですか? 私は使用しています: mysql Ver 14.14 Distrib 5.1.46sp1, for Win32 (ia32)
tree - B ツリーのルートでのアンダーフロー
3-4-5-6 ツリーを実装しようとしています。マージによってルートにキーが 1 つしかなく (アンダーフロー)、その子のキーの総数が 5 を超える場合 (したがって、すべてがマージされるとアンダーフローが発生します)、どうすればよいですか?