Keep Date as transient field to avoid recreating a

Data object at each getDate call.

Add JsonExclude to Offer.currencyCode

getDate get called very often and we have > 80k objects.
This commit is contained in:
chimp1984 2020-12-15 01:02:49 -05:00
parent 9fc4f61bf6
commit 1ddde42e17
No known key found for this signature in database
GPG key ID: 9801B4EC591F90E3
2 changed files with 8 additions and 1 deletions

View file

@ -111,6 +111,7 @@ public class Offer implements NetworkPayload, PersistablePayload {
// Used only as cache
@Nullable
@JsonExclude
transient private String currencyCode;

View file

@ -182,6 +182,10 @@ public final class TradeStatistics3 implements ProcessOncePersistableNetworkPayl
@Getter
private final Map<String, String> extraDataMap;
// We cache the date object to avoid reconstructing a new Date at each getDate call.
@JsonExclude
private transient final Date dateObj;
public TradeStatistics3(String currency,
long price,
long amount,
@ -251,6 +255,8 @@ public final class TradeStatistics3 implements ProcessOncePersistableNetworkPayl
this.extraDataMap = ExtraDataMapValidator.getValidatedExtraDataMap(extraDataMap);
this.hash = hash == null ? createHash() : hash;
dateObj = new Date(date);
}
public byte[] createHash() {
@ -319,7 +325,7 @@ public final class TradeStatistics3 implements ProcessOncePersistableNetworkPayl
@Override
public Date getDate() {
return new Date(date);
return dateObj;
}
public long getDateAsLong() {