|
|
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацвсе что нужно - это лишь починить собственный мозг, в части понимания того, что object->method(x, y) мало чем отличается от class_method(object, x, y)После этой починки ещё настроить маленькой отвёрточкой, чтоб получить правильное object->_vtable->class_method(object, x, y) а то и object->_vtable->class_method(object->_vtable->base, x, y) и иметь достаточно терпения, чтобы это писать, причём без единой лишней ошибки. и иметь ещё больше терпения, чтобы заменить все невиртуальные вызовы виртуальными, когда в будущем что-то серьёзно поменяется, причём тоже без единой лишней ошибки. И тогда да, никакой разницы. Главное, не портировать на Knights Corner, потому что выбор между правкой пары темплетов в плюсовом коде и взрывом мозга в сишном будет очень болезненным пинком по самолюбию си-зацикленного кодера. Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceКсеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. В почете ФП, лиспы и т.п. Ксеноцефал-Луговский - ЕМНИП ембедщик. Он сам о себе так говорил. И вообще я-бы не воспринимал слишком серъёзно его вбросы. Он - не та истина в последней инстанции. Хотя общую характеристику рынка специалистов он давал правильную. Я бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников. Время само всё расставит на свои места. Если потребность в ФП-кодинге будет (будут задачи) то и будут нужны специалисты. На самом деле ФП существует вокруг нас (к примеру любая грамматика описываемая в терминах Бэкуса-Науэра требует применения ФП парадигмы для создания транслятора. Хороший годный парсинг HTML и XSL-transform это тоже задачи из этой области и работа с regexp. Можно брать Python и громогласно заявить что вы функционально-программируете. Где-то в документации было заявлено что питон - ЯФП. Как и насколько функционально это вопрос спорный но главное - начать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацkosh the best> Вот это все выше - феерическая глупость. На простом C вполне можно объектно-ориентированного программировать. Вот, просвещайся: > http://www.cs.rit.edu/~ats/books/ooc.pdf Ох, сколько пафоса. Так и ждал, когда ссылку на эту книжку вбросят. Рабочее ООП на си - это com под винду и gobject в линуксах, а в твоей книжке ранние эксперименты. И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому ну никак к какой библиотеке подключиться нельзя. А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить собственный мозг, в части понимания того, что object->method(x, y) мало чем отличается от class_method(object, x, y) ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы). ООП можно написать на С, наверно можно и полиморфизм реализовать через указатели на функции. Но ООП язык от не-ООП отличает то, что все эти возможности встроены в семантику языка и их не нужно реализовывать искуственно. Ни кто в здравом уме не будет преподавать ООП на С. Не соглашучь с вами. Совсем без наследование именно в реальных проектах обойтись нельзя. Просто сейчас в разных языках появились альтернативы, такие как mixins и наследование в его изначальном виде можно и не использовать. В структура на С, на сколько я помню, нет возможности использовать mixin-ы, только функции-операторы. Вот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Чем вы их предлагаете заменять? Ну вот, например, наследование в других языках заменено интерфейсами или вообще прототипами. Типа другой механизм реализации полиморфизма. В с++ - используем иерархии наследования + механизм виртуальных функций - получаем рабочий полиморфизм. В других системах по другому это сделано. Опять же инкапсуляцию лучше реализовывать отдельно от ооп-подсистемы в языке. Например, посредством модулей. Ну как сделано в common lisp. Ооп там - clos, инкапсуляция - пакеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:59 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить собственный мозг, Ну так и в ушах можно отверткой ковырять. И вовсе от этого уши не обязаны истечь кровью. Но вы ковыряйте хоть отверткой, хоть дрелью. А я, как нормальный человек, сделаю, по сути тоже самое, ватными палочками (которые, по ходу, тоже не рекомендуются для данного действия). Зато у вас мозг починен и вы можете выложить результат на ютуб на радость всем завидующим! От невидаль, реализовать вручную на СИ объектно-ориентированные принципы. Чем бы дитя не тешилось. Но зачем предлагать страдать херней остальным? Страдайте молча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:06 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацвсе что нужно - это лишь починить собственный мозг, в части понимания того, что object->method(x, y) мало чем отличается от class_method(object, x, y)После этой починки ещё настроить маленькой отвёрточкой, чтоб получить правильное object->_vtable->class_method(object, x, y) _vtable нужно лишь для наследования. А вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза. А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а? iv_an_ru[а то и object->_vtable->class_method(object->_vtable->base, x, y) и иметь достаточно терпения, чтобы это писать, причём без единой лишней ошибки. и иметь ещё больше терпения, чтобы заменить все невиртуальные вызовы виртуальными, когда в будущем что-то серьёзно поменяется, причём тоже без единой лишней ошибки. Еще раз. Виртуальный методы, как и механизм exception - это дыра в голове. Такая себе дырища, рассадник глупости! Тебе реально нужны виртуальные методы и исключения? А если взять, и посидеть, хорошо подумать? iv_an_ruИ тогда да, никакой разницы. Главное, не портировать на Knights Corner, потому что выбор между правкой пары темплетов в плюсовом коде и взрывом мозга в сишном будет очень болезненным пинком по самолюбию си-зацикленного кодера. Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит? Потому что нужно не инструменты выбирать, а задачу решать. А в случае C++ происходит строго обратное - сначала выбирается "инструмент", а потом происходит его натягивание на задачу (хотя начинать нужно с концептуальной модели, где вообще нет речи про классы, методы и темплейты). Хотя тебе пока, возможно, это не понять (и возможно никогда уже - ООП мозга - редко излечимо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистООП можно написать на С, наверно можно и полиморфизм реализовать через указатели на функции. Но ООП язык от не-ООП отличает то, что все эти возможности встроены в семантику языка и их не нужно реализовывать искуственно. Ни кто в здравом уме не будет преподавать ООП на С. Я позволю себе добавить что ОО-программировать можно почти на любом современном языке. Вопрос только в том позиционируется ли этот язык изначально как поддерживающий ООП (ключевые слова virtual, interface, implements, extends e.t.c) или нет. Очевидно что С - это вобщем-то портабельный ассемблер на котором вы можете сделать ВСЁ. Но когда этого ВСЕГО становится много вы начинаете думать об удобстве и об автоматизации процесса. И здесь не надо быть гиком. Надо здраво считать количество символов которые должен набить разработчик чтобы получить эффект ООП и надо учитывать вероятность ошибки. Ведь её исправлять возможно будет другой из команды e.t.c. А ошибки в программа как и "налоги" и "смерть" будут всегда. Они - вечны. P.S. В прошлом году купил себе двухтомник Седжвика (Алгоритмы) в примерах на С. И именно искал на С а не на С++. У меня стояла задача углубить некоторые знания в предметной области а не брейн-факать себе мозги очередными шаблонами и функторами и прочими сладостями плюсов. Мне нужен был рафинированный алгоритм в чистом виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить > собственный мозг, в части понимания того, что > object->method(x, y) > мало чем отличается от > class_method(object, x, y) > ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы). Да ну. Что ты говоришь. Прочитай ее сначала, прежде чем ссылками бросаться. Там чуваку в конце все равно пришлось внешний препроцессор заюзать. Одним встроенным препроцессором и магией void* ему не получилось обойтись. > И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому > ну никак к какой библиотеке подключиться нельзя. О да. Готовые отработанные механизмы для вас - overbloating, а велосипедить свой ооп на си - типа норм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:08 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Виртуальный методы, как и механизм exception - это дыра в голове. Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистНе соглашучь с вами. Совсем без наследование именно в реальных проектах обойтись нельзя. а) всем плевать на твое лично несогласие, не подкрепленное вообще ничем рациональным б) обойтись вполне можно и нужно - если ты используешь ООП в прикладном коде (а не в библиотеках) это означает только одно - или поражение мышления, или крайне кривые и недоделанные эти самые библиотеки. А чаще всего - оба симптома. рубистПросто сейчас в разных языках появились альтернативы, такие как mixins и наследование в его изначальном виде можно и не использовать. В структура на С, на сколько я помню, нет возможности использовать mixin-ы, только функции-операторы. Нет ни одной разумной причины для обязательного использования mixin, начнем с этого? рубистВот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ. mixin - это очередная вариация на тему множественного наследования. Говоря проще - натягивания задачи на инструмент, притягивания за уши очередного проходного синтаксического сахара, который только усложняет реализацию и сопровождение. В топку. Идите поищите еще какую-нибудь гадость на полу, попробуйте на вкус, вдруг понравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the best> Виртуальный методы, как и механизм exception - это дыра в голове. Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование. Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой поговорим о современном программировании, ок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза. А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable, то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор? И вы мою пуговицу или оставьте в покое, или купите её у меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:18 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the best> А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить > собственный мозг, в части понимания того, что > object->method(x, y) > мало чем отличается от > class_method(object, x, y) > ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы). Да ну. Что ты говоришь. Прочитай ее сначала, прежде чем ссылками бросаться. Там чуваку в конце все равно пришлось внешний препроцессор заюзать. Одним встроенным препроцессором и магией void* ему не получилось обойтись. Эта "книга" - лишь пример, объясняющий как работает любой ООП язык. А использовать или нет вот те "заменители" - это личный выбор каждого. Почитав про реализацию виртуальных методов и исключений - любой здравомыслящий человек неизмежно задумается о небходимости их существования вообще. А любой, который думать не умеет, зато умеет подражать (как и остальные представители животного мира) - будет вещать "истины" о "современном программировании". kosh the best> И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому > ну никак к какой библиотеке подключиться нельзя. О да. Готовые отработанные механизмы для вас - overbloating, а велосипедить свой ооп на си - типа норм. Именно так. Они кривые, косые, толстые и тормозные. Как и Boost и STL. Ничем не оправданная сложность. kosh the best> а велосипедить свой ооп на си - типа норм. Вполне. Тем более, когда "велосипедить" - это просто программировать в рамках того синтаксиса и идиом, которые остаются неизменными еще с конца 70-х годов (открой исходники System V или UCB BSD, там ООПа - по самое не хочу). Еще раз. То, что ты не понимаешь, как программировать на C объектные модели - это лишь твое ограничение мозга, а вовсе не недостаток базового, стандартного и всем знакомого C. Ну да, K&R в своей книжке для самых маленьких ничего не написали про ООП, и что с того? Читай другие книги, много думай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:23 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза. А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable, В 100% случаев оно тебе на самом деле не нужно, просто у тебя голова отформатирована (приняла форму куба, к примеру) на виртуальные методы. Это нормально - люди в 18-м веке носили букли и парики пудрили, все думали что по другому ну никак нельзя! Все же ходят в париках, а вдруг я без парика, как-же так, да? Неудобно, не современно, засмеют ведь! iv_an_ru то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор? И вы мою пуговицу или оставьте в покое, или купите её у меня. Тебе - незачем, поверь. Оставайся в рамках ограниченности своего мышления, бог с тобой, не велика потеря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off] Потому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:27 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а? А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:32 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off] И что, это починит твои мозговые ограничения? Избавит от форматированного шаблонированного мышления? Сильно сомневаюсь. iv_an_ruПотому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :) Ну и зачем ты это написал? Для самоуспокоения, дескать ограничения мышления теперь чинить у себя не надо, раз некий аноним не вписывается в твои моральные нормы? Ну ок, не чини, продолжай писать виртуальные методы на C++, на радость окружающим тебя и уважающий тебя лично, морально совместимых с тобой людей, в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня. Поди передохни чтоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:35 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonПроясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а? А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено? Ну и к чему ты это понаписал? Для программ на C отменили функциональную, структурную декомпозицию, сокрытие области видимости? Давно? Однако сколько нового узнаешь порой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:36 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня. Поди передохни чтоль. Троллизм детского уровня - это ты про себя точно подметил. Ничего умнее, чем про гардероб с полками выдавить из себя не смог, но виноват в этом - вот тот самый противный чувак, который нагло смется надо мной. Давай-ка я ему скажу "Дерни ручник", тогда мое "разоблачение" про "гардероб" будет выглядеть не так глупо, ага. Еще чего дернуть присоветуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:39 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Поскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:44 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, действительно, проясним ситуацию. ООП отстой, ФП - миф, рулит процедурное программирование, например, чистый С. Для решения практически любой задачи (кроме веба) можно брать С и не париться. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:45 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацНу и к чему ты это понаписал? Давай посчитаем, сколько раз ты этот вопрос написал в этом топике. А потом ты рассуждаешь о шаблонности мышления других. Сначала со своим разберись и с его рамками, прежде чем других носом неизвестно куда тыкать. А касательно функционального программирования, так тоже можно испросить - на кой ляд вообще делить код на функции и распихивать по сотням файлов проекта? Что тебе дают эти вызовы функций? В чем профит? Пиши одну простыню. Не проблема в ней серфить и смотреть ее отдельные куски одновременно в нескольких окошках. - Нафига трусы! Можно ходить в штанах и без трусов! Вы какие-то ограниченные! - Чувак, можно ходить вовсе без одежды. Вот и вся полемика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:46 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацТроллизм детского уровня - это ты про себя точно подметил. Пойду застрелюсь что ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:50 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПоскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :) Забавно. Т.е. ты 12 лет не практикуешь то, о чем тут якобы "экспертно" говоришь? Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею". Зачем это тебе? Решил поиграть в доказательства от противного? Я и сам могу сейчас включить задний ход и последовательно "опустить" сам себя, во всех постах про тупиковость С++, оперируя явно осмысленными "доказательствами" того, что виртуальные функции и темплейты - это венец творения человеческой мысли, незаменимый инструмент, а те кто их принципиально не использует - лишь необразованный тупица, видно плохо читал мануалы. Все в мире используют наследование и обобщенное программирование! Только мамонты, доживающие свои последние годы - не в теме, но они уйдут сами, как динозавры и ламповые телевизоры. И что с того? Учите дети Java и C++, не прогадаете! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:52 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37929499&tid=1342152]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 515ms |

| 0 / 0 |
