Go の構文は、Python 言語から一部借用した、使い慣れた C 言語の要素に基づいています。 言語は非常に簡潔ですが、コードは読みやすく、理解しやすいです。 Go コードは、仮想マシンを使用せずにネイティブに実行されるスタンドアロンのバイナリ実行可能ファイルにコンパイルされます (プロファイリング、デバッグ、およびその他のランタイム問題検出サブシステムは、
このプロジェクトは当初、マルチスレッド プログラミングとマルチコア システムでの効率的な操作を目的として開発されており、これには並列コンピューティングと並列実行メソッド間の相互作用を組織化するためのオペレーター レベルの手段の提供が含まれます。 この言語には、過剰に割り当てられたメモリ ブロックに対する保護機能も組み込まれており、ガベージ コレクターを使用する機能も提供されます。
メイン
- リンカの動作は、動作速度の向上とメモリ消費量の削減の両方の点で、またコードのメンテナンスを簡素化する方向で大幅に改善されました。 ELF 実行可能ファイル形式 (Linux、FreeBSD、NetBSD、OpenBSD、Dragonfly、Solaris) を使用するオペレーティング システムでテストした場合、大規模な Go アプリケーションの典型的なセットは 20% 高速に構築され、メモリ消費量は平均 30% 削減されました。 新しいオブジェクト ファイル形式に切り替え、内部ステージを再加工して作業の並列化レベルを高めることで、生産性の向上が可能になりました。 ネイティブ リンカーは、linux/amd64 および linux/arm64 システムの「-buildmode=pie」でデフォルトで使用されるようになり、C リンカーを使用する必要がなくなりました。
- 実行時、多数の CPU コアを備えたシステム上での小さなオブジェクトの分散が大幅に改善され、待ち時間が短縮されました。 失敗した場合、アドレスは表示されず、数値型と文字列型の値が表示されます。 SIGSEGV、SIGBUS、および SIGFPE シグナルを Go アプリケーションに送信する場合、os/signal.Notify ハンドラーがない場合、アプリケーションはスタック トレース出力で終了します (以前の動作は予測できませんでした)。
- コンパイラーは、ガベージ コレクターの一部のメタデータの組み込みを停止し、未使用のメタデータをより積極的にクリーニングすることにより、生成される実行可能ファイルのサイズを平均 5% 削減するように最適化されています。
- Spectre クラス攻撃に対する保護を有効にするために、「-spectre」フラグがコンパイラとアセンブラに追加されました (ほとんどのプログラムではこれは必須ではありません。オプションを有効にすることは、次の場合にのみ正当化されます)
いくつかの非常に特殊なケース ). - X.509 証明書では、CommonName フィールドが非推奨になり、Subject Alternative Names フィールドが欠落している場合、ホスト名として扱われなくなりました。
- GOPROXY 環境変数の「go」コマンドで、複数のプロキシをカンマまたは「|」で区切ってリストできるようになりました。 リスト内の最初のプロキシがエラー (404 または 410) を返した場合、XNUMX 番目のプロキシなどを通じて接続が試行されます。
- vet ユーティリティは、「x」がルーンまたはバイト以外の整数型である場合に string(x) から変換しようとすることに関する警告を追加しました。
- GNU アセンブラ構文の逆アセンブルをサポートするために、「-gnu」フラグが objdump ユーティリティに追加されました。
- 新しいパッケージが追加されました
時間/tzdata を使用すると、タイムゾーン データを含むデータベースをプログラムに統合できます。 - ソーステキストとドキュメントから
削除されました ホワイトリスト/ブラックリストおよびマスター/スレーブというフレーズは、「allowlist」、「blocklist」、「process」、「pty」、「proc」、および「control」に置き換えられました。 - 標準ライブラリに小さな改良の大部分が加えられました。
- GOARCH=arm および GOARCH=arm6.7 モードでの OpenBSD 64 のサポートが追加されました (以前は GOARCH=386 および GOARCH=amd64 のみがサポートされていました)。
- 64 ビット RISC-V プラットフォーム (GOOS=linux、GOARCH=riscv64) の開発が続けられました。
- 32 ビット x86 システムの場合、次のリリースでは最小システム要件が引き上げられます。SSE2 を搭載したプロセッサのみが引き続きサポートされます。 GOARCH=386 モードでビルドするには、少なくとも Intel Pentium 4 (2000 年リリース) または AMD Opteron/Athlon 64 (2003 年リリース) が必要です。
出所: オープンネット.ru