Google Recruiter
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
In vino Veritas!
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Google Recruiter
Все, я сдаюсь. Если джава спокойно подменяется дотнетом, экономия в военное время достигает четырехкратной, а gc=неизбежное зло, то я уже ничего не смогу объяснить.Alexandr wrote: получается что 9/10 полезной работы при которой производительность будет в 4 раза больше (тут еще нужно учесть тот факт, что на машине обычно 4 камня, а gc собирается 1им (остальные потоки просто тормозятся), так что кеш остальных потоков не "попортится")
Вы прыгаете с одного на другое, забываете о чем шла речь и в качестве бронебойных аргументов приводите какие-то никому неизвестные примеры "своего гейта", о сложности и нагрузке которого ни у кого нет ни малейшего понятия. Вы опереруете совершенно прелестными аргументами типа "прибить каждый поток к своему камню", совершенно игнорируя, что не всегда это возможно, а потоков могут быть тысячи
Не, я так больше не могу. Удачи вам в четырехкратном экономии пропускной способности памяти. В песочницах гыгы
ЗЫ. Отдельной строкой доставило на машине обычно 4 камня
Не, я бы понял еще с трудом "у машины обычно 4 колеса". Но это - в мемориз
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
дык, и вам удачи с серверным приложением, у которого тысячи потоков
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
не люди, а я этот гейт собственоручно написан полностью мной, собственно поэтому так уверенно и говорюcrypto5 wrote:Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
да вы безусловно правы, и на жабе результат будет хуже и с бОльшим гемороем (структур то нет), но как грубая оценка вполне сойдет
так я согласен с этим, скажем так, имхо, джавистам (большинству) полезно знать о наличие кешей и в целом как они работают в общих чертахНу и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям..
ну и процентам 5% джавистов все же полезно знать чуть побольше о выполняемой среде, опять же, имхо
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков
In vino Veritas!
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Та не сойдет, оптимизированный по работе с памятью код может работать в тысячу раз быстрее чем неоптимизированный.Alexandr wrote:да вы безусловно правы, и на жабе результат будет хуже и с бОльшим гемороем (структур то нет), но как грубая оценка вполне сойдетcrypto5 wrote:Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
ну так мы вынуждены создавать эти тысячи потоков от безысходности, о какой-нибудь серьезной производительности тут вообще речь не идет, хотя для той задачи которую вы описали может и достаточноcrypto5 wrote:В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков
если дело происходит под Windows, то лучше такое сделать на C++ на фиберах и в одном потоке (сам опыта не имею, но вроде так можно)
хотя лучше просто выкинуть такую базу (если есть такая возможность)
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
А что такое фибер?Alexandr wrote:ну так мы вынуждены создавать эти тысячи потоков от безысходности, о какой-нибудь серьезной производительности тут вообще речь не идет, хотя для той задачи которую вы описали может и достаточноcrypto5 wrote:В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков
если дело происходит под Windows, то лучше такое сделать на C++ на фиберах и в одном потоке (сам опыта не имею, но вроде так можно)
хотя лучше просто выкинуть такую базу (если есть такая возможность)
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
это опять общие фразыcrypto5 wrote:Та не сойдет, оптимизированный по работе с памятью код может работать в тысячу раз быстрее чем неоптимизированный.Alexandr wrote:да вы безусловно правы, и на жабе результат будет хуже и с бОльшим гемороем (структур то нет), но как грубая оценка вполне сойдетcrypto5 wrote:Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
best effort на C# будет отличаться от best effort на Java на вполне конкретный процент,
приблизительно прикинуть в общем случае можно глянув бенчмарки того и другого
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
А где выше про best effort было?Alexandr wrote:это опять общие фразыcrypto5 wrote:Та не сойдет, оптимизированный по работе с памятью код может работать в тысячу раз быстрее чем неоптимизированный.Alexandr wrote:да вы безусловно правы, и на жабе результат будет хуже и с бОльшим гемороем (структур то нет), но как грубая оценка вполне сойдетcrypto5 wrote:Помоему достаточно недальновидно проецировать реалии .нет-а на джаву. К тому же люди которые писали ваш гейт наверное приложили определенные усилия что бы минимизировать вызов ГЦ.
Ну и имхо все эти вопросы к тактам процессоров и т.д. уместны на очень узком множестве вакансий если говорить о джавистах. Для 99% позиций эти знания иррелевантны так что их нужно рассматривать в привязке к вакансиям.
best effort на C# будет отличаться от best effort на Java на вполне конкретный процент,
приблизительно прикинуть в общем случае можно глянув бенчмарки того и другого
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
http://msdn.microsoft.com/en-us/library ... s.85).aspxcrypto5 wrote:А что такое фибер?Alexandr wrote:ну так мы вынуждены создавать эти тысячи потоков от безысходности, о какой-нибудь серьезной производительности тут вообще речь не идет, хотя для той задачи которую вы описали может и достаточноcrypto5 wrote:В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков
если дело происходит под Windows, то лучше такое сделать на C++ на фиберах и в одном потоке (сам опыта не имею, но вроде так можно)
хотя лучше просто выкинуть такую базу (если есть такая возможность)
вот в этой книжке http://www.amazon.com/Concurrent-Progra ... 032143482X описан простой пример как самому контекст переключать и организовать что-то вроде user mode "thread" scheduling
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
А в чем профит?Alexandr wrote:http://msdn.microsoft.com/en-us/library ... s.85).aspxcrypto5 wrote:А что такое фибер?Alexandr wrote:ну так мы вынуждены создавать эти тысячи потоков от безысходности, о какой-нибудь серьезной производительности тут вообще речь не идет, хотя для той задачи которую вы описали может и достаточноcrypto5 wrote:В некоторых случаях без тысячи потоков тяжело обойтись(например нужно делать много запросов к сторонним БД с latency 10ms, а их драйвера не поддерживают интерфейс на неблокирующих сокетах).Alexandr wrote:дык, и вам удачи с серверным приложением, у которого тысячи потоков
если дело происходит под Windows, то лучше такое сделать на C++ на фиберах и в одном потоке (сам опыта не имею, но вроде так можно)
хотя лучше просто выкинуть такую базу (если есть такая возможность)
вот в этой книжке http://www.amazon.com/Concurrent-Progra ... 032143482X описан простой пример как самому контекст переключать и организовать что-то вроде user mode "thread" scheduling
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
просто мне там в вину поставили то, что я пример на C# привел, так вот этот пример и был оптизирован настолько насколько я смог и позволяло время на проект, соответственно если речь о Java, то я тоже предполагаю, что это будет best effort, потому что в противном случае вообще смысл теряетсяcrypto5 wrote: А где выше про best effort было?
под best effort можете понимать - оптимизировать насколько можно за вменяемое время
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Ну так возвращаясь к задаче с масивом на тысячу элементов никто ж не говорил что окружение будет донельзя оптимизировано и/или его вообще можно оптимизировать до такого уровня как ваш шлюз?Alexandr wrote:просто мне там в вину поставили то, что я пример на C# привел, так вот этот пример и был оптизирован настолько насколько я смог и позволяло время на проект, соответственно если речь о Java, то я тоже предполагаю, что это будет best effort, потому что в противном случае вообще смысл теряетсяcrypto5 wrote: А где выше про best effort было?
под best effort можете понимать - оптимизировать насколько можно за вменяемое время
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
в 99% никакого, гораздо важнее, чтобы быстрее задачу сделать и не плодить зоопарка из технологийcrypto5 wrote:А в чем профит?
в 1% - когда потоков станет насколько много, что кусок памяти съедаемый внутренними структурами и стеками потоков станет насколько большим настолько, что это станет существенным + context switch стоит относительно немало, т.е. когда у вас будет потоков насколько много, что 1000+ потоков будут просыпаться одновременно и пытаться там что-то отправить и уже не будут помещаться в отведенное время
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
И как ваши fibers спасут от зоопарка технологий?Alexandr wrote:в 99% никакого, гораздо важнее, чтобы быстрее задачу сделать и не плодить зоопарка из технологийcrypto5 wrote:А в чем профит?
Ну так под fiber помоему пониманию тоже стек выделяется и какие то структуры наверное.в 1% - когда потоков станет насколько много, что кусок памяти съедаемый внутренними структурами и стеками потоков станет насколько большим настолько, что это станет существенным
Ну понятно что если потоки будут часто одновременно просыпаться настолько что context switch будет проблемой то задача уже ограничена другими факторами кроме ожидания ответа от БД и количество потоков можно уменьшить. Ну и в оси наверное можно что-то подкрутить и пропросить ее увеличить кванты времени под поток.+ context switch стоит относительно немало, т.е. когда у вас будет потоков насколько много, что 1000+ потоков будут просыпаться одновременно и пытаться там что-то отправить и уже не будут помещаться в отведенное время
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
а зачем нужно, чтобы оно было оптимизировано?crypto5 wrote:Alexandr wrote: Ну так возвращаясь к задаче с масивом на тысячу элементов никто ж не говорил что окружение будет донельзя оптимизировано и/или его вообще можно оптимизировать до такого уровня как ваш шлюз?
так никакие оптимизации и не нужны, вопрос звучал просто, что быстрее последовательный или произвольный доступ к 1000 интовому массиву
вопрос затравка на поговорить о memory hierarchy, не более
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Ну так потом дискуссия развилась по пути что джава там где важны миллисекунды не нужна потому что GC, что действительно вполне есть проблема.Alexandr wrote:а зачем нужно, чтобы оно было оптимизировано?crypto5 wrote:Alexandr wrote: Ну так возвращаясь к задаче с масивом на тысячу элементов никто ж не говорил что окружение будет донельзя оптимизировано и/или его вообще можно оптимизировать до такого уровня как ваш шлюз?
так никакие оптимизации и не нужны, вопрос звучал просто, что быстрее последовательный или произвольный доступ к 1000 интовому массиву
вопрос затравка на поговорить о memory hierarchy, не более
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
не спасут, наоборот добавятcrypto5 wrote: И как ваши fibers спасут от зоопарка технологий?
по моему легче драйвер подкрутить, ну или базу такую выкинуть нафикcrypto5 wrote:Ну понятно что если потоки будут часто одновременно просыпаться настолько что context switch будет проблемой то задача уже ограничена другими факторами кроме ожидания ответа от БД и количество потоков можно уменьшить. Ну и в оси наверное можно что-то подкрутить и пропросить ее увеличить кванты времени под поток.
Last edited by Alexandr on 07 Sep 2012 14:32, edited 1 time in total.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Google Recruiter
для большинства задач прям уж миллисекунды не нужны, недаром даже бекэнд (обслуживающие) HFT систем на жабе, но есть куча серверных задач на жабе, где нужно все же писать достаточно эффективно (т.е. best effort за вменямое время)crypto5 wrote:Ну так потом дискуссия развилась по пути что джава там где важны миллисекунды не нужна потому что GC, что действительно вполне есть проблема.Alexandr wrote:а зачем нужно, чтобы оно было оптимизировано?crypto5 wrote:Alexandr wrote: Ну так возвращаясь к задаче с масивом на тысячу элементов никто ж не говорил что окружение будет донельзя оптимизировано и/или его вообще можно оптимизировать до такого уровня как ваш шлюз?
так никакие оптимизации и не нужны, вопрос звучал просто, что быстрее последовательный или произвольный доступ к 1000 интовому массиву
вопрос затравка на поговорить о memory hierarchy, не более
меня нисколько не удивляет, что в стартапе автору задавали такие вопросы
-
- Уже с Приветом
- Posts: 198
- Joined: 15 Jan 2010 15:42
- Location: SFBA
Re: Google Recruiter
Собственно, есть вполне себе HFT на джаве (не только обслуживающие системы). Просто вызовы GC там сведены к нулю тем что все работает на примитивных типах и вся необходимая память выделяется один раз при старте приложения. На мой взгляд это некое извращение, но тем не менее такое есть. И оптимизировать там не милли, а микросекунды надо.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Думаю найти программиста который не страшится тысячи потоков легче чем копаться в блобе драйвера или переводить всю инфраструктуру на другую базу.Alexandr wrote:по моему легче драйвер подкрутить, ну или базу такую выкинуть нафикcrypto5 wrote:Ну понятно что если потоки будут часто одновременно просыпаться настолько что context switch будет проблемой то задача уже ограничена другими факторами кроме ожидания ответа от БД и количество потоков можно уменьшить. Ну и в оси наверное можно что-то подкрутить и пропросить ее увеличить кванты времени под поток.
In vino Veritas!
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Google Recruiter
Ну они наверное какие то простые действия выполняют, но это ведь нельзя экстраполировать на все случаи жизни.vladich wrote:Собственно, есть вполне себе HFT на джаве (не только обслуживающие системы). Просто вызовы GC там сведены к нулю тем что все работает на примитивных типах и вся необходимая память выделяется один раз при старте приложения. На мой взгляд это некое извращение, но тем не менее такое есть. И оптимизировать там не милли, а микросекунды надо.
In vino Veritas!
-
- Уже с Приветом
- Posts: 198
- Joined: 15 Jan 2010 15:42
- Location: SFBA
Re: Google Recruiter
Я и не экстраполирую, просто говорю что и для Java есть такие приложения где нужно такты процессора считать, и GC при этом не мешает.crypto5 wrote:Ну они наверное какие то простые действия выполняют, но это ведь нельзя экстраполировать на все случаи жизни.vladich wrote:Собственно, есть вполне себе HFT на джаве (не только обслуживающие системы). Просто вызовы GC там сведены к нулю тем что все работает на примитивных типах и вся необходимая память выделяется один раз при старте приложения. На мой взгляд это некое извращение, но тем не менее такое есть. И оптимизировать там не милли, а микросекунды надо.
А действия не простые. Чтобы эти непростые действия работали без GC, люди фактически не пользуются базовыми библиотеками Java вообще, или же как минимум большую их часть переписали..
-
- Уже с Приветом
- Posts: 4935
- Joined: 02 Mar 2002 10:01
- Location: UK
Re: Google Recruiter
А какой смысл тогда вообще Java использовать?vladich wrote:Я и не экстраполирую, просто говорю что и для Java есть такие приложения где нужно такты процессора считать, и GC при этом не мешает.crypto5 wrote:Ну они наверное какие то простые действия выполняют, но это ведь нельзя экстраполировать на все случаи жизни.vladich wrote:Собственно, есть вполне себе HFT на джаве (не только обслуживающие системы). Просто вызовы GC там сведены к нулю тем что все работает на примитивных типах и вся необходимая память выделяется один раз при старте приложения. На мой взгляд это некое извращение, но тем не менее такое есть. И оптимизировать там не милли, а микросекунды надо.
А действия не простые. Чтобы эти непростые действия работали без GC, люди фактически не пользуются базовыми библиотеками Java вообще, или же как минимум большую их часть переписали..