{'fraction_non_alphanumeric': 0.031762295081967214, 'fraction_numerical': 0.015368852459016393, 'mean_word_length': 5.8321678321678325, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Localized or Architectural: An Empirical Study of Performance Issues Dichotomy

Performance is an important quality attribute of software systems. This paper categorizes and investigates 225 real-life performance issues in two separate groups: 1) localized issues (60%) that can be fixed by simple, localized code fixes and 2) architectural issues (40%) that require changes to a group of architecturally related files. This paper improves the understanding of causes and solutions to performance issues, specially for architectural performance issues. First, we summarized six typical root causes to performance problems that apply to both localized and architectural issues. In particular, 19% of architectural issues are associated with multiple causes. Second, we summarized four general types of architectural solutions to performance issues: 1) introducing new design elements; 2) changing design dependencies; 3) updating connected files; 4) updating independent files.