io.Copy() を使用してコピーするとスパース ファイルが大きくなる
io.Copy() を使用してスパース ファイルをコピーすると、予期せずサイズが大きくなる目的地では大きい。これを防ぐにはどうすればよいでしょうか?
バックグラウンド
io.Copy() は、スパース ファイルのプロパティを認識せずに生のバイトを転送します。データに穴が開いたまま、スパース ファイルが効率的に保存されます。 io.Copy() はこのホール情報を伝達できないため、コピー プロセス中にスパース性が失われます。
解決策
この問題に対処するには、バイパスする必要があります。 io.Copy() を使用して、syscall パッケージを直接操作します。方法は次のとおりです:
- ホールの検出: lseek(2) の SEEK_HOLE および SEEK_DATA 特殊値を使用して、スパース ファイル内のホールとデータ領域を見つけます。
- シーク値のカスタマイズ: プラットフォーム固有の SEEK_HOLE および SEEK_DATA 値が必要です。サポートされているプラットフォームに応じて次の値を決定します。
- 読み取りパターンを変更します。 データを含む領域を特定し、そこからデータを読み取ります。
- ファイル パンチを検討します。 Linux では、fallocate(2) を使用して宛先ファイルの末尾に穴を開けることを試みることができます。サポートされていない場合は、ゼロ化されたブロックを書き込み、ホールをシミュレートします。
追加の考慮事項
- ファイルシステムのサポート: すべてのファイルシステムがサポートされているわけではありません。 FAT32 などのホール。宛先ファイル システムがホールをサポートしているかどうかを確認します。
- ソース ファイルと宛先ファイルの違い: ソース ファイルと宛先ファイルが同じファイル システム上に存在するかどうかを確認します。その場合は、syscall.Rename() または os.Rename() を使用して、コピーせずにファイルを移動することを検討してください。
詳細については、tar アーカイブへのスパース ファイルの書き込みに関する Go の問題 #13548 を参照してください。 .
以上が## io.Copy() でコピーするとスパース ファイルが大きくなるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています

この記事では、コードのランタイム操作に使用されるGoの反射パッケージについて説明します。シリアル化、一般的なプログラミングなどに有益です。実行やメモリの使用量の増加、賢明な使用と最高のアドバイスなどのパフォーマンスコストについて警告します

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









