Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use consistent big-endian int/long to byte[] conversion for hashing purposes

    • -6
    • +6
    ./reflect/MessageDigestHasherBenchmark.java
  1. … 4 more files in changeset.
Use consistent big-endian int/long to byte[] conversion for hashing purposes

    • -27
    • +27
    ./reflect/HashingAlgorithmsBenchmark.java
    • -6
    • +6
    ./reflect/MessageDigestHasherBenchmark.java
    • -4
    • +4
    ./reflect/MessageDigestThreadingBenchmark.java
  1. … 3 more files in changeset.
Use consistent big-endian int/long to byte[] conversion for hashing purposes

    • -6
    • +6
    ./reflect/MessageDigestHasherBenchmark.java
  1. … 3 more files in changeset.
Use consistent big-endian int/long to byte[] conversion for hashing purposes

    • -6
    • +6
    ./reflect/MessageDigestHasherBenchmark.java
  1. … 3 more files in changeset.
Use consistent big-endian int/long to byte[] conversion for hashing purposes

    • -6
    • +6
    ./reflect/MessageDigestHasherBenchmark.java
  1. … 3 more files in changeset.
Make `Hasher` inherit from `PrimitiveHasher`

  1. … 1 more file in changeset.
Make `Hasher` inherit from `PrimitiveHasher`

  1. … 1 more file in changeset.
Make `Hasher` inherit from `PrimitiveHasher`

  1. … 1 more file in changeset.
Make `Hasher` inherit from `PrimitiveHasher`

  1. … 1 more file in changeset.
Add benchmark for multi-threaded hashing alternatives

    • -95
    • +112
    ./reflect/HashingAlgorithmsBenchmark.java
    • -0
    • +98
    ./reflect/MessageDigestHasherBenchmark.java
    • -0
    • +93
    ./reflect/MessageDigestThreadingBenchmark.java
  1. … 1 more file in changeset.
Add benchmark for multi-threaded hashing alternatives

    • -95
    • +112
    ./reflect/HashingAlgorithmsBenchmark.java
    • -0
    • +117
    ./reflect/HashingBenchmark.java
    • -0
    • +99
    ./reflect/MessageDigestHasherBenchmark.java
    • -0
    • +95
    ./reflect/MessageDigestThreadingBenchmark.java
  1. … 1 more file in changeset.
Add benchmark for multi-threaded hashing alternatives

    • -95
    • +112
    ./reflect/HashingAlgorithmsBenchmark.java
    • -0
    • +114
    ./reflect/HashingBenchmark.java
    • -0
    • +98
    ./reflect/MessageDigestHasherBenchmark.java
    • -0
    • +93
    ./reflect/MessageDigestThreadingBenchmark.java
  1. … 1 more file in changeset.
Add benchmark for multi-threaded hashing alternatives

    • -95
    • +112
    ./reflect/HashingAlgorithmsBenchmark.java
    • -0
    • +98
    ./reflect/MessageDigestHasherBenchmark.java
    • -0
    • +93
    ./reflect/MessageDigestThreadingBenchmark.java
  1. … 1 more file in changeset.
Change a few `Iterable`s to `Collection`s to take advantage of its `size` when copying

    • -9
    • +9
    ./reflect/CollectionUtilsBenchmark.java
  1. … 9 more files in changeset.
Add benchmark for `CollectionUtils`

    • -0
    • +101
    ./reflect/CollectionUtilsBenchmark.java
  1. … 1 more file in changeset.
Add benchmark for `CollectionUtils`

    • -0
    • +101
    ./reflect/CollectionUtilsBenchmark.java
  1. … 1 more file in changeset.
Use our own hashing architecture, take 2 (#2817)

This replaces Guava's hashing. We need this for two reasons:

- it allows the addition of custom hash functions, like BLAKE2b which would not be possible with Guava's closed design

- it fixes a few performance issues that Guava only fixes in version 20 (which we can't upgrade to right now, because we still need to support Java 5 in places)

    • -0
    • +3
    ./reflect/CachedConstructorsBenchmark.java
    • -0
    • +158
    ./reflect/HashingAlgorithmsBenchmark.java
  1. … 158 more files in changeset.
Rework the reflection cache

The reflection cache is now safer, because we use a hierarchical cache where

the node entries are weakly referenced `Class` instances. Typically the first

level of the cache would be the receiver, while lower levels would be the

argument types. If those types are collected, the weak hash maps that we use

internally would automatically clean the entries. Eventually, the value associated

with this "path" of `Class` itself references a `Method` or a `Constructor`

with additional, computed, data.

The advantage of this approach is that typically for the instantiator case,

we no longer need to match the argument types (`isMatch`) for each call: instead,

we go through the tree using subsequent argument types, and if a match is found,

we know it's the right one.

    • -1
    • +2
    ./reflect/CachedConstructorsBenchmark.java
  1. … 6 more files in changeset.
Allow JMH testing in all projects

Until now, JMH benchmarks went into the `performance` project,

regardless of what part of the code base they were testing.

This change allows every project to use a jmh source set to for

benchmarks of its own classes.

    • -0
    • +56
    ./reflect/CachedConstructorsBenchmark.java
  1. … 4 more files in changeset.