![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Jilian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 24.1.2005 Где: Минск Репутация: нет Всего: нет |
Добрый день!
У меня было собеседование, но котором мне задали следующий вопрос. Как происходит распределение ПМ в перл и сколько занимает переменная $_ по умолчанию. Не могли бы вы дать мне пару статей на эту тему. Как-то этот вопрос не освящался ни в книгах, ни на форумах. Спасибо большое! |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
"ПМ в перл" -- ?
|
|||
|
||||
Jilian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 24.1.2005 Где: Минск Репутация: нет Всего: нет |
What is $_? How many memory taken this variable by default? Как вы понимаете, первый вопрос затруднений не вызвал, а вот второй.... |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый Jilian, по поводу размера $_ я тоже не знал. Судя по
Переменная занимает 12 байт (как и любой другой неинициализированный скаляр); Это сообщение отредактировал(а) ginnie - 8.7.2008, 11:51 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
ginnie, опередил! Это сообщение отредактировал(а) amg - 8.7.2008, 12:00 |
|||
|
||||
Jilian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 24.1.2005 Где: Минск Репутация: нет Всего: нет |
Спасибо всем большое. =) Теперь буду знать, что отвечать на такие вопросы =)
|
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Jilian, подобных вопросов придумать можно еще много. Простых: размер пустого массива или хеша, и сложных: из чего этот размер складывается
![]() Это сообщение отредактировал(а) ginnie - 8.7.2008, 12:02 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
Jilian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 24.1.2005 Где: Минск Репутация: нет Всего: нет |
В компании нужен был человек, который мог бы написать пару несложных скриптов на перле. Кастомеры попались странные, спрашивали как представить строку из китайских иероглифов и всякое в этом роде, так что вопрос с переменной $_ еще был нормальным =)
А где можно почитать про то, как складывается размер переменных в перле? |
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
ИМХО вопрос не корректный. Т.к распределение памяти скрыто от программиста. И им занимается только сам Perl. И размер соотвественно скалярных переменных содержащих одно и тоже может быть разным в разных версиях Perl.
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый amg, не подскажите, как связан вопрос "Сколько занимает минимальный элемент хэша?" с "потому как часто случается, что на хэш из 20 М элементов гига памяти вдруг не хватает"?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Это я к тому, что оценка размера хэша в памяти по очевидной, казалось бы, формуле (число элементов) х 2 х (средний размер ключей/величин) приведет к ошибке (собственный печальный опыт). Для прикидок к среднему размеру ключей/величин необходимо прибавлять еще некое число (и немаленькое), связанное с размером минимального элемента хэша. Это сообщение отредактировал(а) amg - 8.7.2008, 13:27 |
|||
|
||||
Jilian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 24.1.2005 Где: Минск Репутация: нет Всего: нет |
2 amg
А не подскажите, с чем связана необходимость прибавления этого числа? |
|||
|
||||
AlexPet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: 1 Всего: 1 |
||||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Много интересного можно прочитать в Perl 5 Internals. AlexPet, вопросы я написал по аналогии с заданным про размер $_. Смысл они имеют, разве что при поиске хорошего разработчика XS-модулей или Perl-хакера ![]() Сами по себе подобные знания мало что дают (кроме осознания собственной "крутизны"), важно выяснить умение их использования соискателем для решения реальных задач. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |