Очень разное время выполнения
Модератор: Модераторы разделов
-
Devider
- Сообщения: 476
- ОС: GNU/Linux
Очень разное время выполнения
Изучаю руби. Накидал как мог программку для решения судоку (конструктивная критика, кстати, приветствуется). Проблема в том, что она выполняется 3 секунды на том компе где я ее писал. Это Sempron 64 LE-1150 с 1 гигом оперативки с linux mint Maya x32 с XFCE. Запустил на домашней машине, выполнилось меньше чем за 0.1 сек. Версия рубей везде одинаковая. Как вообще получается такая разница?
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Очень разное время выполнения
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
Devider
- Сообщения: 476
- ОС: GNU/Linux
Re: Очень разное время выполнения
Дома чуть получше, но далеко не Тяньхэ-2.
AMD FX-4100, 16GB, На работе i5 c 8 га с сопоставимым результатом (около 0.15 сек). Проблема с тем семпроном. Фоновых процессов не замечено.
-
azsx
- Сообщения: 3684
- ОС: calculate linux, debian, ubuntu
Re: Очень разное время выполнения
я, конечно, программу даже открывать не стал, но обратите внимание. У вас явно геометрическая прогрессия по скорости выполнения и колличеству оперативной памяти. Наверное, в теле программы задаются большие массивы, которые если есть оперативка - грузятся туда; а если нет - идет через файл подкачки.
-
Devider
- Сообщения: 476
- ОС: GNU/Linux
Re: Очень разное время выполнения
Запустил на виртуалке:
В общем, что-то не так с тем конкретно компом. Что именно, наверное, так и останется тайной.
$ ~/sudoku-master $ cat /proc/cpuinfo | grep 'model name'
model name : Intel® Core™ i5-3330 CPU @ 3.00GHz
$ ~/sudoku-master $ free
total used free shared buffers cached
Mem: 507512 497580 9932 0 20036 202460
-/+ buffers/cache: 275084 232428
Swap: 1046524 0 1046524
$ ~/sudoku-master $ time ruby resolver.rb
2 5 8 1 9 7 3 6 4
3 7 9 5 4 6 2 1 8
6 1 4 3 2 8 7 5 9
7 4 1 6 5 2 8 9 3
9 2 6 8 1 3 5 4 7
8 3 5 9 7 4 6 2 1
1 6 2 7 3 9 4 8 5
5 8 7 4 6 1 9 3 2
4 9 3 2 8 5 1 7 6
real 0m0.197s
user 0m0.040s
sys 0m0.048s
В общем, что-то не так с тем конкретно компом. Что именно, наверное, так и останется тайной.
-
Женя Подсыпальников
- Сообщения: 482
Re: Очень разное время выполнения
А межстрочный трэйсинг системного времени в файл - в Руби - бывает ?
Такие два файла можно сравнить по межстрочным разницам,
чтобы найти места, ответственные за тормоза
Такие два файла можно сравнить по межстрочным разницам,
чтобы найти места, ответственные за тормоза
Пойдём на рыбалку !
-
Devider
- Сообщения: 476
- ОС: GNU/Linux
Re: Очень разное время выполнения
Первый раз про такое слышу. А где такое есть?
-
Женя Подсыпальников
- Сообщения: 482
Re: Очень разное время выполнения
Вот тут , где 164 человека большой палец подняло -
можно вывести не только текст "начало цикла" но и время в миллисекундах для этого начала, потом - для конца.
Сначала - грубо, поделив текст программы на 4 части, потом - детальнее ту часть, где тормозит и.т.д.
Постепенно открываем для себя инструкцию, ответственную за различное время исполнения на различных процессорах.
Некоторые процессоры, могут с дробями лучше работать, например. У Вас там дробей нету в программе ?
А получить время в миллисекундах - на Руби - возможно ?
можно вывести не только текст "начало цикла" но и время в миллисекундах для этого начала, потом - для конца.
Сначала - грубо, поделив текст программы на 4 части, потом - детальнее ту часть, где тормозит и.т.д.
Постепенно открываем для себя инструкцию, ответственную за различное время исполнения на различных процессорах.
Некоторые процессоры, могут с дробями лучше работать, например. У Вас там дробей нету в программе ?
А получить время в миллисекундах - на Руби - возможно ?
Пойдём на рыбалку !
-
Devider
- Сообщения: 476
- ОС: GNU/Linux
Re: Очень разное время выполнения
Женя Подсыпальников писал(а): ↑10.01.2014 12:29Вот тут , где 164 человека большой палец подняло -
можно вывести не только текст "начало цикла" но и время в миллисекундах для этого начала, потом - для конца.
Сначала - грубо, поделив текст программы на 4 части, потом - детальнее ту часть, где тормозит и.т.д.
Постепенно открываем для себя инструкцию, ответственную за различное время исполнения на различных процессорах.
Некоторые процессоры, могут с дробями лучше работать, например. У Вас там дробей нету в программе ?
А получить время в миллисекундах - на Руби - возможно ?
А, не, это не канает. До того компа больше доступа нет.
-
Женя Подсыпальников
- Сообщения: 482
Re: Очень разное время выполнения
// А, не, это не канает. До того компа больше доступа нет.
Если интересно, можно и на доступном посмотреть, где дольше-живее,
но он у Вас слишком быстрый, как я понял...
А без доступа к медленному - можно долго гадать, вообще-то...
Если интересно, можно и на доступном посмотреть, где дольше-живее,
но он у Вас слишком быстрый, как я понял...
А без доступа к медленному - можно долго гадать, вообще-то...
Пойдём на рыбалку !