0xd34df00d 25.07.2012 17:30 Aedalus

Угадай, что это делает: http://bpaste.net/show/6QqkS3RmrsjgzfyKQ...

Recommended by:

@pooq: моча съела говно

1. hirthwork 25.07.2012 17:31 mcabber4ACEFE26

это чешет ЧСВ дедфуда

2. 0xd34df00dhirthwork /1 25.07.2012 17:31 Azoth_primary

Ну а кроме этого?

3. hirthwork0xd34df00d /2 25.07.2012 17:32 mcabber4ACEFE26

а оно должно делать что-то ещё?

4. 0xd34df00dhirthwork /3 25.07.2012 17:33 Azoth_primary

Ну, неплохо бы.

5. hirthwork0xd34df00d /4 25.07.2012 17:41 mcabber4ACEFE26

ну как я сразу не догадался...

6. hirthworkhirthwork /5 25.07.2012 17:41 mcabber4ACEFE26

оно показывает как не нужно писать код.

7. 0xd34df00dhirthwork /6 25.07.2012 17:42 Aedalus

Обоснуйте.

8. hirthwork0xd34df00d /7 25.07.2012 17:46 mcabber4ACEFE26

обосновываю: я пять минут пристально смотрел на эти сто строк кода и так и не понял нахуй ты так сделал. в яндехе миллионы строк кода, и ни на одну сотню строк не приходится так долго смотреть, чтобы понять что это и зачем. это с учётом того, что комментарии в коде у нас не принято писать.

9. 0xd34df00dhirthwork /8 25.07.2012 17:47 Aedalus

Просто у вас там мудаки-неосиляторы :3
Через часик-другой напишу, чо это.

10. hirthwork0xd34df00d /9 25.07.2012 17:52 mcabber4ACEFE26

говорю тебе ещё раз. говно это. ты экономишь на спичках. никому в хуй не впились стеки, реализованные поверх векторов, которые при недостаточном заполнении и не вектора даже, а просто массивы

11. DZhon 25.07.2012 17:53

QVarLengthArray изобрел, да ?

12. 0xd34df00dhirthwork /10 25.07.2012 17:54 Aedalus

Уперлись. Нужно хранить N uint32_t'ов, и в подавляющем большинстве случаев N в районе 2-3. Оверхед в 24 байта на вектор на 64-битной системе в таком случае — это пиздец. 24 vs 8 — 3 раза экономия. Учитывая, что таких хуевин может быть масштаба 10⁵, то это уже вполне неплохо.

13. 0xd34df00dDZhon /11 25.07.2012 17:54 Aedalus

Да :3

14. 0xd34df00d0xd34df00d /13 25.07.2012 17:55 Aedalus

Ну, почти.

15. DZhon0xd34df00d /13 25.07.2012 17:57

Олсо, а где же реализация move-ctor, move-assignment, swap ?

16. 0xd34df00dDZhon /15 25.07.2012 17:57 Aedalus

Это живет в C++03-мире, мувов нет. swap не нужен.

17. hirthwork0xd34df00d /12 25.07.2012 17:59 mcabber4ACEFE26

блядь, ну охуеть теперь. стотыщраз ты сэкономил 24 байта. 2.4 мега. давно ли ты в эмбеддщики записался? тебе нужно не копейки экономить, а скорость. а скорость ты проебал на отличненько таким изъёбом.

18. DZhon0xd34df00d /14 25.07.2012 17:59

Ну понятно, что не совсем то :)

19. DZhonhirthwork /17 25.07.2012 17:59

Кстати, да, indirections в профайлере могут всплыть.

20. 0xd34df00dhirthwork /17 25.07.2012 17:59 Aedalus

Схуябы это?

21. DZhon0xd34df00d /16 25.07.2012 18:00

Почему swap не нужен ?

22. 0xd34df00dDZhon /21 25.07.2012 18:00 Aedalus

Я юзкейсы этой хуйни знаю, не пригодится. На досуге поспециализирую, равно как и мувы запилю :3

23. DZhon0xd34df00d /20 25.07.2012 18:00

бранчевание же :) во вставке и взятии

24. 0xd34df00dDZhon /23 25.07.2012 18:01 Aedalus

А. Обмажу unlikely первый бранч в op[], а остальное по факту будет выполняться, скорее всего, один раз при загрузке, поэтому похуй.

25. hirthwork0xd34df00d /20 25.07.2012 18:01 mcabber4ACEFE26

не «схуябы», а возьми grpof и посчитай, сколько времени будет заполняться мильён нормальных векторов четыремя элементами и сколько времени твоё поделие заполняться будет

26. 0xd34df00dhirthwork /25 25.07.2012 18:02 Aedalus

Заполнение — не узкое место. Больше всего op[] будет.

27. hirthwork0xd34df00d /26 25.07.2012 18:02 mcabber4ACEFE26

т.е. ты признаёшь, что тут есть узкие места?

28. 0xd34df00dhirthwork /27 25.07.2012 18:03 Aedalus

Конечно. Трейдоффы есть всегда.

29. hirthwork0xd34df00d /28 25.07.2012 18:03 mcabber4ACEFE26

ну и зачем ты на современном железе торгуешь скорость на память?

30. 0xd34df00dhirthwork /29 25.07.2012 18:04 Aedalus

Потому что жаба душит 2.4-24 мегабайта на юзера просирать тупо на vector.

31. DZhon0xd34df00d /30 25.07.2012 18:11

Дедфуд, еще тебя огорчу:
std::vector has shrunk from 16 bytes in Visual C++ 2010 to 12 bytes in Visual C++ in Visual Studio 2012 RC

33. 0xd34df00dDZhon /31 25.07.2012 18:12 Azoth_primary

А у нас прыщи, и я sizeof(std::vector<uint32_t>) посмотрел. 24 байта.

34. DZhonDZhon /31 25.07.2012 18:13

Понятно, что это x86, но зачем собирать x64 ?

35. 0xd34df00dDZhon /34 25.07.2012 18:13 Azoth_primary

Потому что это не шиндошс, внезапно.

36. hirthworkDZhon /31 25.07.2012 18:13 mcabber4ACEFE26

там не уточняется битность системы. я меньше чем 16 байтами на x64 не знаю как обойтись

37. DZhon0xd34df00d /35 25.07.2012 18:13

ну подожди, это ты для личкрафтов или еще чего-то ?

38. 0xd34df00dDZhon /37 25.07.2012 18:14 Azoth_primary

Нет, не для личкрафтов :3
http://barzer.net . В этой хуйне мапы синонимов храниться будут.

39. DZhonhirthwork /36 25.07.2012 18:14

уточняется,
>> in x86 release mode with default settings

40. hirthwork0xd34df00d /30 25.07.2012 18:14 mcabber4ACEFE26

имхо, тебе выебнуться хочется больше, чем память сэкономить. приходи, когда сравнишь производительность с vector

41. hirthwork0xd34df00d /38 25.07.2012 18:16 mcabber4ACEFE26

морфологию чью используете?

42. 0xd34df00dhirthwork /40 25.07.2012 18:16 Azoth_primary

Кококо. Производительность там съестся в другом месте.

43. 0xd34df00dhirthwork /41 25.07.2012 18:16 Azoth_primary

Английский велосипедный, русский тоже, остальные — snowball.

44. hirthwork0xd34df00d /43 25.07.2012 18:16 mcabber4ACEFE26

пджди. snowball — это ж стеммер, который используется люцене?

45. 0xd34df00dhirthwork /44 25.07.2012 18:17 Azoth_primary

Один из. И что?

46. hirthwork0xd34df00d /45 25.07.2012 18:17 mcabber4ACEFE26

стемминг и морфология штуки разные. хотя кроме английского морфология никакая не нужна.

47. hirthwork0xd34df00d /43 25.07.2012 18:18 mcabber4ACEFE26

вопрос на засыпку. если в искать по документу с предложением «Добрый день.» по запросу «дела» (ставь ударение куда хочешь), то будет ли найден данный документ?

48. 0xd34df00dhirthwork /46 25.07.2012 18:19 Azoth_primary

Мы из всей морфологической хуйни только стемминг и используем. Полноценная морфология нам там не нужна вообще нигде, даже в английском.

49. hirthwork0xd34df00d /48 25.07.2012 18:19 mcabber4ACEFE26

ок.

50. hirthworkhirthwork /49 25.07.2012 18:19 mcabber4ACEFE26

лентяи

51. 0xd34df00dhirthwork /50 25.07.2012 18:19 Azoth_primary

R.

52. 0xd34df00dhirthwork /47 25.07.2012 18:20 Azoth_primary

Это не поиск документов по документам, это вообще не поиск. Это реврайтинг поисковых запросов.

53. gelraen 25.07.2012 18:56

enum
{
ObjSize = sizeof(ContClass),
SSize = ObjSize / sizeof(T)
};
поблевал.

54. 0xd34df00dgelraen /53 25.07.2012 19:01 Azoth_primary

Что тебе не нравится?

55. gelraen0xd34df00d /54 25.07.2012 19:02 imax

использование enum для хранения числовых констант, например

56. 0xd34df00dgelraen /55 25.07.2012 19:02 Azoth_primary

А как по-твоему?

57. gelraen0xd34df00d /56 25.07.2012 19:03 imax

const size_t ...
Хотя не удивлюсь если оно не будет работать.

58. 0xd34df00dgelraen /57 25.07.2012 19:05 Azoth_primary

Не будет. Сразу видно сиблядка ;3

59. gelraen0xd34df00d /58 25.07.2012 19:07 imax

нет, сразу видно человека, предпочитающего формулировать код наиболее близким образом к его назначению

60. 0xd34df00dgelraen /59 25.07.2012 19:09 Azoth_primary

Лучше бы ты сначала язык освоил, формулятор.

61. hirthworkgelraen /53 25.07.2012 19:43 mcabber0F8360B8

это единственное с чего сблевал? у тебя крепкий желудок

62. 0xd34df00dhirthwork /61 25.07.2012 19:49 Azoth_primary

Сиблядок просто все остальное не понял :3

Do you really want to delete ?