Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/28/18 21:26:06 (6 years ago)
Author:
bburlacu
Message:

#2950: Fix bug in HashUtil.ToByteArray(). Improve hashing performance (10-15% gain) by avoiding array allocations for child node indices.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Hashing/HashUtil.cs

    r16218 r16261  
    9090
    9191    public static byte[] ToByteArray(this int[] input) {
    92       const int size = sizeof(int);
    9392      var bytes = new byte[input.Length * sizeof(int)];
    94       for (int i = 0; i < input.Length; ++i) {
    95         Array.Copy(BitConverter.GetBytes(bytes[i]), 0, bytes, i * size, size);
     93      int pos = 0;
     94      foreach (var v in input) {
     95        var b0 = (byte)((v >> 24) & 0xFF);
     96        var b1 = (byte)((v >> 16) & 0xFF);
     97        var b2 = (byte)((v >> 8) & 0xFF);
     98        var b3 = (byte)(v & 0xFF);
     99        bytes[pos++] = b0;
     100        bytes[pos++] = b1;
     101        bytes[pos++] = b2;
     102        bytes[pos++] = b3;
    96103      }
    97104      return bytes;
Note: See TracChangeset for help on using the changeset viewer.