|
|
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
1) чем в памяти определяется размер объекта класса? (размерами методов и атрибутов или чем то одним или вообще от этого не зависит?) 2) атрибуты класса могут быть любыми встроенными типами или любыми типами определенными в программе? 3) class A {int x; double y;} как для него сделать операцию сложения (ну там типа const A& operator+(A a) или както иначе??? заранее спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 07:50 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.заранее спасибо!!!Заранее пожалуйста. А все три ответа есть в любой книжке по С++ Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 07:52 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
приятно иметь дело с добрыми людьми! на 3-ий вопрос я действительно нашел ответ, а на первые два не нашел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 07:58 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А. ТА> приятно иметь дело с добрыми людьми! на 3-ий вопрос я ТА> действительно нашел ответ, а на первые два не нашелА компилятор под рукой есть ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 07:59 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.1) чем в памяти определяется размер объекта класса? (размерами методов и атрибутов или чем то одним или вообще от этого не зависит?)Вот есть к примеру класс AnsiString. Сколько памяти занимает объект этого класса ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:02 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
не знаю. ф-ей SizeOf можно определить (прогр. оболочки под рукой нету). ну на скока я понимаю от методов размер объекта не зависит, следовательно он зависит от атрибутов... или вообще не от чего не зависит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:27 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
а на второй вопрос мне кажется атрибут можно сделать любого типа, который существует в программе. я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:29 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.а на второй вопрос мне кажется атрибут можно сделать любого типа, который существует в программе. я прав? Невнимательно книжку читал :). Атрибут в С++ есть переменная-член, которая может иметь тип любого известного типа. "Известный" означает что тип должен быть ранее объявлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:42 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
теперь на счет первого вопроса. раз виртуальные ф-ии увеличивают размер объекта => размер объекта зависит от методов и атрибутов. я прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:43 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
А. КАтрибут в С++ есть переменная-член, которая может иметь тип любого известного типа. "Известный" означает что тип должен быть ранее объявлен. так я же могу придумать свой тип и объявить его заранее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:46 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А. ТА> теперь на счет первого вопроса. раз виртуальные ф-ии ТА> увеличивают размер объекта => размер объекта зависит от ТА> методов и атрибутов. я прав?Близко к истине, но ... в конструкторе объекта могут создаваться некие объекты в памяти, и никакой sizeof тебе не скажет по них Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 08:57 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
тогда кроме методов и атрибутов от чего ещё зависит размер объекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 09:06 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А. ТА> тогда кроме методов и атрибутов от чего ещё зависит ТА> размер объекта?От того, сколько памяти выделяется в конструкторе или в других методах ... вобще - размер объекта - это очень размытое понятие Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 09:24 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
это есть такой тест, ответив на который например так: 1. Атрибуты класса могут быть только целыми числами любыми встроенными типами (!) любого определенного в программе типа 2. Если имеется код class A { public: int a; }; A *obj; как обратиться к переменной a? obj.a obj-a obj->a (!) obj::a 3. Какое из приведенных ниже определений операции сложения для класса class A {int x; double y;} является наиболее правильным? void operator+ (const A& a) const const A& operator+(A a) A operator+(const A& a) const (!) const A& operator(const A& a) 4. Сколько ошибок обнаружит компилятор в следующем коде? class Ping { public: Ping() const {}; Ping(int _x) { x = _x; }; int SetX(int _x) const { x = _x; }; const int GetX(int _x) const { return x; }; private: int x; }; 1 (!) 2 3 4 5 5. Фрагмент программы for(i=n-1; i>=0; i--) for(j=0; j<n-i-1; j++) a [j]=1; заполнит элементы квадратной матрицы (n-размерность матрицы) на главной диагонали над главной диагональю над побочной диагональю (!) на побочной диагонали под побочной диагональю 6. Размер объекта класса в памяти определяется суммой размеров методов класса и атрибутов класса (!) суммой размеров методов класса суммой размеров атрибутов класса не зависит от размеров атрибутов и методов класса выдаст - тест не пройден! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 09:41 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
шрифт поменялся. ну короче так: это есть такой тест, ответив на который например так: 1. Атрибуты класса могут быть только целыми числами любыми встроенными типами (!) любого определенного в программе типа 2. Если имеется код class A { public: int a; }; A *obj; как обратиться к переменной a? obj.a obj-a obj->a (!) obj::a 3. Какое из приведенных ниже определений операции сложения для класса class A {int x; double y;} является наиболее правильным? void operator+ (const A& a) const const A& operator+(A a) A operator+(const A& a) const (!) const A& operator(const A& a) 4. Сколько ошибок обнаружит компилятор в следующем коде? class Ping { public: Ping() const {}; Ping(int _x) { x = _x; }; int SetX(int _x) const { x = _x; }; const int GetX(int _x) const { return x; }; private: int x; }; 1 (!) 2 3 4 5 5. Фрагмент программы Код: plaintext 1. 2. на главной диагонали над главной диагональю над побочной диагональю (!) на побочной диагонали под побочной диагональю 6. Размер объекта класса в памяти определяется суммой размеров методов класса и атрибутов класса (!) суммой размеров методов класса суммой размеров атрибутов класса не зависит от размеров атрибутов и методов класса выдаст - тест не пройден! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 09:43 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
дело не в тесте. Т.е. заранее определить размер объекта невозможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 10:07 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.Т.е. заранее определить размер объекта невозможно?Если под размером объекта понимать всю память, которую выделили в конструкторе и в процессе работы - то в общем случае заранее нельзя. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 10:22 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Хехе. Про размер могу только сказать, что может вообще ничего не занимать Вчерась вот эксперементировали. Класс содержит переменную типа int и функцию установки значения этой переменной. В программе создается объект класса, устанавливается значение равное "1" и printf оно выводится. Знаете что в результате?) push $1 push .string;"%d" которая call _printf :-) __________________ For more information, please proceed to http://www.ot-e.biz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 10:38 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
hellПро размер могу только сказать, что может вообще ничего не занимать Не может, согласно стандарту С++. Объект должен обладать идентичностью, и, поскольку в С++ объект идентифицируется его адресом (указателем на него), то никакие два разных объекта не должны иметь одинаковый адрес, поэтому минимальный размер объекта - 1 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:05 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
1) чем в памяти определяется размер объекта класса? (размерами методов и атрибутов или чем то одним или вообще от этого не зависит?) Размером всех нестатических атрибутов класса, которые неупакованы в union-ы. Если они упакованы, то для каждого набора атрибутов, попадающих в один union выделяется максимальный размер из всех атрибутов. Плюс могут добавляться также накладные расходы, связанные с реализацией runtime-полиморфизма, как например, размер указателя на таблицу виртуальных функций. 2) атрибуты класса могут быть любыми встроенными типами или любыми типами определенными в программе? любыми типами определенными в программе, естественно. 3) class A {int x; double y;} как для него сделать операцию сложения (ну там типа const A& operator+(A a) или както иначе??? Обычно определяется так: A operator+(const A &right); Но operator + может быть также и не-member function , тогда A operator+(const A &left, const A &right); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:11 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.не знаю. ф-ей SizeOf можно определить (прогр. оболочки под рукой нету). size_of не функция, а операция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:12 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Тихомиров А.теперь на счет первого вопроса. раз виртуальные ф-ии увеличивают размер объекта => размер объекта зависит от методов и атрибутов. я прав? Нет, не прав, потому как он увеличивает размер объекта на фиксированный кусок памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:13 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасБлизко к истине, но ... в конструкторе объекта могут создаваться некие объекты в памяти, и никакой sizeof тебе не скажет по них Эта память не входит в то, что называется размером объекта. Это входит в объем памяти, нужный для создания нового объекта данного класса, ее действительно нельзя никак узнать (по стандарту). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:15 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Ggggguestшрифт поменялся. ну короче так: это есть такой тест, ответив на который например так: 1. Атрибуты класса могут быть только целыми числами любыми встроенными типами (!) любого определенного в программе типа 2. Если имеется код class A { public: int a; }; A *obj; как обратиться к переменной a? obj.a obj-a obj->a (!) obj::a 3. Какое из приведенных ниже определений операции сложения для класса class A {int x; double y;} является наиболее правильным? void operator+ (const A& a) const const A& operator+(A a) A operator+(const A& a) const (!) const A& operator(const A& a) 4. Сколько ошибок обнаружит компилятор в следующем коде? class Ping { public: Ping() const {}; Ping(int _x) { x = _x; }; int SetX(int _x) const { x = _x; }; const int GetX(int _x) const { return x; }; private: int x; }; 1 (!) 2 3 4 5 5. Фрагмент программы Код: plaintext 1. 2. на главной диагонали над главной диагональю над побочной диагональю (!) на побочной диагонали под побочной диагональю 6. Размер объекта класса в памяти определяется суммой размеров методов класса и атрибутов класса (!) суммой размеров методов класса суммой размеров атрибутов класса не зависит от размеров атрибутов и методов класса выдаст - тест не пройден! Для четвертого вопроса на мой взгляд ответ 3. Компилятор должен выдать 3 ошибки в строке: int SetX(int _x) const { x = _x; }; Во первых константый метод пытается изменить внутреннюю переменную, а во вторый он обязательно должен выдавать значение. Также по моему будет ошибка на лишние ; за фигурной скобкой. Насчет того, чем определяется размер объекта в памяти класса. У Джеса Либерти ясно написано, что размер объекта (именно объекта, а не таблицы виртуальных функции и т.д.) опредяелсяет только по размеру атрибутов класса. Причем если объявлен указатель на какой либо другой объект, то именно указаль является его атрибутом и его размер будет учитываться, а не размер объекта, на который ссылается данный указатель член. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:22 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
MasterZiv M> Эта память не входит в то, что называется размером M> объектаТ.е. размер объекта - это сколько памяти отвел компилятор для него, так получается Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:24 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасТ.е. размер объекта - это сколько памяти отвел компилятор для него, так получается Конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:28 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Homosum это есть такой тест, ответив на который например так: Где берешь тесты такие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:32 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
6. Размер объекта класса в памяти определяется суммой размеров методов класса и атрибутов класса суммой размеров методов класса суммой размеров атрибутов класса не зависит от размеров атрибутов и методов класса Правильный ответ - "суммой размеров атрибутов класса". Понятия "размер метода класса" вообще не существует, у метода нет размера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 11:37 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
MasterZiv... Понятия "размер метода класса" вообще не существует, у метода нет размера.Это конечно так, но наличие виртуальных на размер класса влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 12:06 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
5. Фрагмент программы for(i=n-1; i>=0; i--) for(j=0; j<n-i-1; j++) a[j]=1; заполнит элементы квадратной матрицы (n-размерность матрицы) на главной диагонали над главной диагональю над побочной диагональю (!) на побочной диагонали под побочной диагональю - вопрос вообще неправильный. Не понятно, как объявлена a и как в ней (если это одномерный массив) хранится двухмерная матрица - по стобцам или по строкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 12:07 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
_Балтика MasterZiv... Понятия "размер метода класса" вообще не существует, у метода нет размера.Это конечно так, но наличие виртуальных на размер класса влияет. Как??? Как наличие виртуальных методов может влиять на размер объекта класса? Наличие виртуальных методов может влиять на накладные расходы памяти по работе с ними - таблицы вирутальных функций и т.д., но не на сам объект класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 12:09 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Homosum _Балтика MasterZiv... Понятия "размер метода класса" вообще не существует, у метода нет размера.Это конечно так, но наличие виртуальных на размер класса влияет. Как??? Как наличие виртуальных методов может влиять на размер объекта класса? Наличие виртуальных методов может влиять на накладные расходы памяти по работе с ними - таблицы вирутальных функций и т.д., но не на сам объект класса.Как только появляется хотя-бы один вирт. метод класса, в первых четырех байтах объекта класса появляется указатель на его VMT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 12:15 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
а если было наследование от нескольких классов с виртуальными методами, по-видимому, будет несколько указателей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 13:22 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
maXmoа если было наследование от нескольких классов с виртуальными методами, по-видимому, будет несколько указателей.Нет, один. Он указывает, на смещение от начала VMT первого родительского класса, имеющего вирт. методы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 13:33 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
_Балтика maXmoа если было наследование от нескольких классов с виртуальными методами, по-видимому, будет несколько указателей.Нет, один. Он указывает, на смещение от начала VMT первого родительского класса, имеющего вирт. методы.Извиняюсь, ерунду написяал. У каждого класса своя VMT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 13:35 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
только они, имхо, объединены в одну таблицу, чтобы иметь доступ ко всем методам через один указатель на начало таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 14:36 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
maXmoтолько они, имхо, объединены в одну таблицу, чтобы иметь доступ ко всем методам через один указатель на начало таблицы.Нет, абсолютно разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 15:47 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Вот набросал ради интереса :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 16:43 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 17:38 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
а, блин, ступил... ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 17:40 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Ну дак здесь-же наследование множественное. Два указателя на VMT (8 байт) плюс 3 интежера (12 байт). 8 + 12 = 20 :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 17:46 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Вот вам вообщем пример. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. Всё как я обещал. Засунули в стек 55, потом указатель на строку формата и вызвали принтф) __________________ For more information, please proceed to http://www.ot-e.biz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 18:58 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
_Балтика MasterZiv... Понятия "размер метода класса" вообще не существует, у метода нет размера.Это конечно так, но наличие виртуальных на размер класса влияет. Незначительно. Как и выравнивание. Кстати , про выравнивание забыл написать. Некоторые компиляторы на некоторых системах для более быстрого доступа к классу и его элементам могут выравнивать поля и/или сам класс по границам слов, двойных слов или полуслов (это все зависит от системы) и таким образом размер объекта может вырости. Обычно все это может настраиваться на уровне опций компилатора, если конечно это возможно в принципе (в смысле делать и так, и так). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 23:04 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
Homosum Как??? Как наличие виртуальных методов может влиять на размер объекта класса? Ну указатель на таблицу виртуальных методов добавляется в объект, а может даже и не один. Меняется, но незначительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 23:06 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
maXmoа если было наследование от нескольких классов с виртуальными методами, по-видимому, будет несколько указателей. Именно так. Если хоть одна ветка наследования невиртуальная, естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2006, 23:06 |
|
||
|
3 вопроса
|
|||
|---|---|---|---|
|
#18+
MasterZiv Homosum Как??? Как наличие виртуальных методов может влиять на размер объекта класса? Ну указатель на таблицу виртуальных методов добавляется в объект, а может даже и не один. Меняется, но незначительно. MasterZiv, Балтика, спасибо большое - буду знать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2006, 00:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2031257]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 391ms |

| 0 / 0 |
