Browse Source

asorted performance tweaks

Alexander Rose 3 years ago
parent
commit
8f6dbf2192

+ 3 - 2
src/mol-data/int/impl/sorted-array.ts

@@ -60,10 +60,11 @@ export function getAt(xs: Nums, i: number) { return xs[i]; }
 
 export function areEqual(a: Nums, b: Nums) {
     if (a === b) return true;
-    const aSize = a.length;
+    let aSize = a.length;
     if (aSize !== b.length || a[0] !== b[0] || a[aSize - 1] !== b[aSize - 1]) return false;
     if (isRange(a)) return true;
-    for (let i = 0; i < aSize; i++) {
+    aSize--;
+    for (let i = 1; i < aSize; i++) {
         if (a[i] !== b[i]) return false;
     }
     return true;

+ 1 - 1
src/mol-geo/geometry/marker-data.ts

@@ -21,7 +21,7 @@ export function getMarkersAverage(array: Uint8Array, count: number): number {
     if (count === 0) return 0;
     let sum = 0;
     for (let i = 0; i < count; ++i) {
-        sum += +!!array[i];
+        sum += array[i] && 1;
     }
     return sum / count;
 }

+ 1 - 1
src/mol-model/structure/structure/element/loci.ts

@@ -470,7 +470,7 @@ export namespace Loci {
     }
 
     function getUnitIndices(elements: SortedArray<ElementIndex>, indices: SortedArray<ElementIndex>) {
-        if (SortedArray.areEqual(elements, indices) && SortedArray.isRange(elements)) {
+        if (SortedArray.isRange(elements) && SortedArray.areEqual(elements, indices)) {
             return Interval.ofLength(elements.length);
         }
         return makeIndexSet(SortedArray.indicesOf<ElementIndex, UnitIndex>(elements, indices));