タグ

SoftwareとGCに関するItisangoのブックマーク (3)

  • How much faster is Java 17?

    原文はこちら。 This article was written by Geoffrey De Smet (Lead and founder of OptaPlanner). https://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html (訳注)日付に関する情報は原文のまま訳しています。 Java 17 (昨日リリースされました)が多数の新機能や改善を伴って登場しました。しかし、そうした新機能などのメリットを享受するためにはコードの変更が必要です。でもパフォーマンスについては別です。シンプルにJDKを置き換えれば、お金をかけずにパフォーマンスを改善できます。しかしながら、どれぐらい改善するのでしょうか?置き換える価値はあるのでしょうか?それでは、JDK 17、JDK 16、JDK 11のベンチマークを比較してみ

    How much faster is Java 17?
  • fixed ステートメント - 移動可能変数を固定する - C# reference

    fixed ステートメントを使うと、ガベージ コレクターによる移動可能変数の再配置を防ぎ、その変数へのポインターを宣言することができます。 固定 (またはピン留め) された変数のアドレスは、そのステートメントの実行中に変わりません。 宣言されたポインターは、対応する fixed ステートメント内でのみ使用できます。 宣言されたポインターは読み取り専用であり、変更できません。 unsafe { byte[] bytes = [1, 2, 3]; fixed (byte* pointerToFirst = bytes) { Console.WriteLine($"The address of the first array element: {(long)pointerToFirst:X}."); Console.WriteLine($"The value of the first array

  • アンセーフ コード、データへのポインター、および関数ポインター - C# reference

    ポインター関連の演算子について詳しくは、「ポインターに関連する演算子」をご覧ください。 どのポインター型も、暗黙的に void* 型に変換できます。 どのポインター型にも、値 null を割り当てることができます。 どのポインター型も、キャスト式を使用して、他のポインター型に明示的に変換できます。 また、任意の整数型をポインター型に、または任意のポインター型を整数型に変換することもできます。 これらの変換には、明示的なキャストが必要です。 次の例では、int* を byte* に変換しています。 ポインターは、変数の最下位バイト アドレスを指すことに注意してください。 int のサイズ (4 バイト) まで結果を連続してインクリメントする場合、変数の残りのバイトを表示することができます。 int number = 1024; unsafe { // Convert to byte: byt

    Itisango
    Itisango 2020/10/21
    "To maintain type safety and security, C# does not support pointer arithmetic, by default. However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. For more information about pointers, see Pointer types." #dotNet
  • 1