perf(simulator): build once address for tags caches addressable indexes
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 24 Mar 2023 21:35:16 +0000 (22:35 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 24 Mar 2023 21:35:16 +0000 (22:35 +0100)
 cache

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/AuthorizedTagsCache.ts

index b63387eda9afcc9859ad6147d674163e9d2440cf..edb695386c8609b8927460e628d03a3c57144faa 100644 (file)
@@ -60,19 +60,21 @@ export class AuthorizedTagsCache {
 
   private getRandomIdTag(hashId: string, file: string): string {
     const tags = this.getAuthorizedTags(file);
+    const addressableKey = file + hashId;
     this.tagsCachesAddressableIndexes.set(
-      file + hashId,
+      addressableKey,
       Math.floor(Utils.secureRandom() * tags.length)
     );
-    return tags[this.tagsCachesAddressableIndexes.get(file + hashId)];
+    return tags[this.tagsCachesAddressableIndexes.get(addressableKey)];
   }
 
   private getRoundRobinIdTag(hashId: string, file: string): string {
     const tags = this.getAuthorizedTags(file);
-    const idTagIndex = this.tagsCachesAddressableIndexes.get(file + hashId) ?? 0;
+    const addressableKey = file + hashId;
+    const idTagIndex = this.tagsCachesAddressableIndexes.get(addressableKey) ?? 0;
     const idTag = tags[idTagIndex];
     this.tagsCachesAddressableIndexes.set(
-      file + hashId,
+      addressableKey,
       idTagIndex === tags.length - 1 ? 0 : idTagIndex + 1
     );
     return idTag;
@@ -82,11 +84,12 @@ export class AuthorizedTagsCache {
     const file = ChargingStationUtils.getAuthorizationFile(chargingStation.stationInfo);
     const tags = this.getAuthorizedTags(file);
     const hashId = chargingStation.stationInfo.hashId;
+    const addressableKey = file + hashId;
     this.tagsCachesAddressableIndexes.set(
-      file + hashId,
+      addressableKey,
       (chargingStation.index - 1 + (connectorId - 1)) % tags.length
     );
-    return tags[this.tagsCachesAddressableIndexes.get(file + hashId)];
+    return tags[this.tagsCachesAddressableIndexes.get(addressableKey)];
   }
 
   private hasTags(file: string): boolean {