• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nshkrdotcom / ElixirScope / 997dd201c48cfc5a93ab9d8799c4f839ab1728ae

29 May 2025 07:59PM UTC coverage: 58.374% (-0.05%) from 58.426%
997dd201c48cfc5a93ab9d8799c4f839ab1728ae

push

github

NSHkr
refactor performance_optimizer

0 of 159 new or added lines in 6 files covered. (0.0%)

14 existing lines in 1 file now uncovered.

6082 of 10419 relevant lines covered (58.37%)

3184.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/elixir_scope/ast_repository/performance_optimizer/statistics_collector.ex
1
# ==============================================================================
2
# Statistics Collection Component
3
# ==============================================================================
4

5
defmodule ElixirScope.ASTRepository.PerformanceOptimizer.StatisticsCollector do
6
  @moduledoc """
7
  Collects and manages performance optimization statistics.
8
  """
9

10
  use GenServer
11

12
  def start_link(opts \\ []) do
NEW
13
    GenServer.start_link(__MODULE__, opts, name: __MODULE__)
×
14
  end
15

NEW
16
  def init(_opts) do
×
17
    {:ok, %{}}
18
  end
19

20
  @doc """
21
  Initializes optimization statistics structure.
22
  """
23
  @spec init_optimization_stats() :: map()
24
  def init_optimization_stats() do
NEW
25
    %{
×
26
      modules_optimized: 0,
27
      functions_optimized: 0,
28
      cache_optimizations: 0,
29
      memory_optimizations: 0,
30
      query_optimizations: 0,
31
      total_time_saved_ms: 0
32
    }
33
  end
34

35
  @doc """
36
  Initializes cache statistics structure.
37
  """
38
  @spec init_cache_stats() :: map()
39
  def init_cache_stats() do
NEW
40
    %{
×
41
      cache_hits: 0,
42
      cache_misses: 0,
43
      cache_evictions: 0,
44
      cache_warming_cycles: 0
45
    }
46
  end
47

48
  @doc """
49
  Initializes batch statistics structure.
50
  """
51
  @spec init_batch_stats() :: map()
52
  def init_batch_stats() do
NEW
53
    %{
×
54
      batches_processed: 0,
55
      total_items_batched: 0,
56
      average_batch_time_ms: 0,
57
      batch_efficiency_ratio: 0.0
58
    }
59
  end
60

61
  @doc """
62
  Initializes lazy loading statistics structure.
63
  """
64
  @spec init_lazy_loading_stats() :: map()
65
  def init_lazy_loading_stats() do
NEW
66
    %{
×
67
      lazy_loads_triggered: 0,
68
      lazy_loads_avoided: 0,
69
      memory_saved_bytes: 0,
70
      time_saved_ms: 0
71
    }
72
  end
73

74
  @doc """
75
  Updates optimization statistics with new operation data.
76
  """
77
  @spec update_optimization_stats(map(), atom(), number()) :: map()
78
  def update_optimization_stats(stats, operation_type, duration_us) do
NEW
79
    duration_ms = duration_us / 1000
×
80

NEW
81
    case operation_type do
×
82
      :module_storage ->
NEW
83
        %{stats |
×
NEW
84
          modules_optimized: stats.modules_optimized + 1,
×
NEW
85
          total_time_saved_ms: stats.total_time_saved_ms + max(0, 10 - duration_ms)
×
86
        }
87

88
      :function_storage ->
NEW
89
        %{stats |
×
NEW
90
          functions_optimized: stats.functions_optimized + 1,
×
NEW
91
          total_time_saved_ms: stats.total_time_saved_ms + max(0, 20 - duration_ms)
×
92
        }
93

94
      :query_optimization ->
NEW
95
        %{stats |
×
NEW
96
          query_optimizations: stats.query_optimizations + 1,
×
NEW
97
          total_time_saved_ms: stats.total_time_saved_ms + max(0, 100 - duration_ms)
×
98
        }
99

100
      _ ->
NEW
101
        stats
×
102
    end
103
  end
104
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc