Skip to content

Commit 7569f6d

Browse files
author
maksim.rabau
committed
Some refactoring
1 parent 71b5ca2 commit 7569f6d

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

benchmark.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
confidence: 95,
1010
)
1111

12-
x.report("slow string concatenation") do
12+
x.report("generating report") do
1313
work('data_large.txt', disable_gc: false)
1414
end
1515
end

case-study.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ file_lines.each do |line|
5656

5757
### Ваша находка №3
5858
- `RubyProf Flat` показывает большой % использования `Array#each`
59-
- Видно, что логика для построения статистики по каждому пользователю написана криво с использованием огромного кол-ва переборов. Нет смысла каждый раз итерироваться по всему массиву при построении отдельной статистики (т.е нет смысла начинать итерацию с нуля при построении sessionsCount, totalTime, longestSession, browsers, usedIE, alwaysUsedChrome и dates - можно строить все нужные статистики на текущей итерации)
59+
- Видно, что логика для построения статистики по каждому пользователю написана криво с использованием огромного кол-ва переборов. Нет смысла каждый раз итерироваться по всему массиву при построении отдельной статистики (т.е нет смысла начинать итерацию с нуля при построении sessionsCount, totalTime, longestSession, browsers, usedIE, alwaysUsedChrome и dates - можно строить все нужные статистики на текущей итерации по каждому пользователю, т.е можно перебрать массив users лишь один раз, а не 7)
6060
- После рефакторинга `Array#each` упал до 13.36%
6161

6262
### Ваша находка №4
@@ -66,7 +66,7 @@ file_lines.each do |line|
6666

6767
### Ваша находка №5
6868
- `RubyProf Flat` показывает большой % использования `Date#parse`
69-
- Обратив внимание на структуру данных, видно, что конструкции типа `Date#parse` можно опустить вообще - использование `.sort.reverse' более чем достаточно
69+
- Обратив внимание на структуру данных, видно, что конструкцию `Date#parse` можно опустить вообще - использование `.sort.reverse' более чем достаточно
7070
- После рефакторинга `Date#parse` упал до 0% соответственно
7171

7272
## Результаты

task-1.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ def sessions_browsers
3737
end
3838

3939
class Session
40-
attr_reader :attributes, :time
40+
attr_reader :attributes
4141

4242
def initialize(attributes:)
4343
@attributes = attributes
44-
@time = attributes['time']
4544
end
4645
end
4746

0 commit comments

Comments
 (0)