Improve performance#5539
Conversation
Improve performance by: - Caching fields as KeywordList - Remove duplicate change listener - Remove preference access in loop
koppor
left a comment
There was a problem hiding this comment.
Looks OK. I like Google Guava - therefore, I commented it at two places.
| } | ||
|
|
||
| public KeywordList getFieldAsKeywords(Field field, Character keywordSeparator) { | ||
| Optional<KeywordList> storedList = fieldsAsKeywords.get(field, keywordSeparator); |
There was a problem hiding this comment.
Can't you use Google Guava's Cache? 😇 Maybe, with Eclipse Collections Twin
LoadingCache<Pair<Field, Character>, KeywordList> storedKeywordList = CacheBuilder.newBuilder()
.build(new CacheLoader<Pair<Field, Character>, KeywordList>() {
@Override
public String load(final Pair<Field, Character> pair) throws Exception {
return getField(pair.getOne().map(... pair.getTwo());
}
});return storedKeywordList.get(Tuples.pair(field, keywordSeparator));OK, invalidation is worse (as it is not possible to invalidate all pairs having the same first value (easily)).
storedKeywordList.invalidateAll();(I now that Tuples.pair(...) might be slower than your approach. Howver, I would like that the cache can be tweaked ^^).
There was a problem hiding this comment.
That looks complicated 😄 https://github.com/google/guava/wiki/CachesExplained#applicability has the nice explanation
Note: If you do not need the features of a Cache, ConcurrentHashMap is more memory-efficient -- but it is extremely difficult or impossible to duplicate most Cache features with any old ConcurrentMap.
I guess we do not need these cache features (but I've also never worked with Guave Caches...so I cannot appreciate them).
| latexFreeFields.put(field, typeName); | ||
| return Optional.of(typeName); | ||
| return Optional.of(type.get().getDisplayName()); | ||
| } else if (latexFreeFields.containsKey(field)) { |
There was a problem hiding this comment.
This could also be a good place for Guava's Cache.
|
@tobiasdiez Wonderful! Let me know, when I can start testing this fix. |
176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 176997d
) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 176997d Co-authored-by: github actions <jabrefmail+webfeedback@gmail.com>
1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 1b00ec0
) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 1b00ec0 Co-authored-by: github actions <jabrefmail+webfeedback@gmail.com>
4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 4703b5d
* Squashed 'buildres/csl/csl-styles/' changes from ec4a4c0..4703b5d 4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 4703b5d * Squashed 'buildres/csl/csl-locales/' changes from ec6d62a9e7..7a507fc008 7a507fc008 Fix spelling of October in Thai locale git-subtree-dir: buildres/csl/csl-locales git-subtree-split: 7a507fc0084edea8376ee5345879ddc2c99829ba Co-authored-by: github actions <jabrefmail+webfeedback@gmail.com>
2b37392 Create betriebswirtschaftliche-forschung-und-praxis.csl (#5609) a52989c Update universitat-zu-koln-seminar-fur-abwl-und-finanzierungslehre.csl (#5610) 47c21bf Add historioPLUS (#5611) baf11b4 Update urad-rs-za-makroekonomske-analize-in-razvoj.csl (#5607) 636affa Create pain-medicine.csl (#5606) 1d060f9 Update sist02.csl (#5568) 54e8904 Update ucl-university-college-apa.csl (#5597) 9c6308e Creation du style cahiers-du-journalisme.csl (#5595) 7dea54b Update universite-du-quebec-a-montreal.csl (#5596) b110d07 Update journal-of-paleontology.csl (#5594) 9cc3797 Add workaround for software style in ASA (sociology) (#5464) 459dfb7 Update american-journal-of-sociology.csl (#5604) f73d62f Create council-of-science-editors-brackets.csl (#5593) bacf673 Remove extra accent (#5598) 55e1d40 Update system-dynamics-review.csl (#5599) b8262e4 Update independent style for journal-of-cataract-and-refractive-surgery.csl (#5602) 04da306 Create quaderni-ministero-dei-beni-e-delle-attivita-culturali-e-del-t… (#5600) 8144588 Update journal-of-dental-research.csl (#5601) 4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 2b37392
Improve performance by:
With these changes, the mega huge library of @AEgit works without too much delays (the initial loading of the database is a bit slow but still ok). Thus, this PR is a potential fix for #4430 and for #5071.