Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravAnatoly MoskovskyВ данном случае вполне можно хранить свой кеш в каждом потоке (через TLS) - тогда не нужна блокировка. К сожалению использование TLS тут имеет ряд проблем. Понятно что есть проблемы. Но всегда можно найти компромис. Ведь речь идет об оптимизации. Значит чем-то нужно будет пожертвовать, т.к. ничего даром не дается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 09:00 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНа шаблон С++ я бы посмотрел. В качестве зарядки с утра сделал :) Код: 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. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 09:06 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravSiemarglpetrav, где теряем? На D сделано через шаблоны. Причем была возможность сделать их pure, но потеряли бы в удобстве. На шаблон С++ я бы посмотрел. Фишка в том, что это со многими другими фичами (Pipes, interpocess, unittest) попадает в stdlib. Я код D не очень понял, если честно. Но в С++ коде данные кешируются в нескольких static переменных. Что будет если такую функцию вызывать из нескольких потоков? А если добавить туда мьютекс - так его блокировка тоже не мгновенный процесс. Достаточно блочить только конец кэша при его добавлении. Остальное реентерабельности не помеха. Anatoly Moskovsky, идею как сделано понял, но это не отменяет того, что буст-это супер-мега костыли ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 21:28 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglбуст-это супер-мега костыли ) Ну на самом деле очень большой плюс буста, что он изолирует эти все костыли от програмиста, взамен давая удобные и простые в использовании фичи, изначально не предусмотренные при проектировании языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 08:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, не возражаю против достоинств (хотя сам выбрал попроще и полегче либу d-lib). Но иногда цена высокая: Оптимизирующие компиляторы Я тут пересобрал себе буст под MinGW 4.5 - перепроверил результат. Из-за какой то фигни с бустом и оптимизатором VC9 проигрывает ему в 10 раз =( Перемудрили где-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 10:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, не возражаю против достоинств (хотя сам выбрал попроще и полегче либу d-lib). Но иногда цена высокая: Оптимизирующие компиляторы Я тут пересобрал себе буст под MinGW 4.5 - перепроверил результат. Из-за какой то фигни с бустом и оптимизатором VC9 проигрывает ему в 10 раз =( Перемудрили где-то Тут не обязательно проблема в Бусте. Например в том коде по ссылке что вы привели - работа с регексами. А как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 11:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Не думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 12:08 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglВ D - строки строго иммутабельные, а скорость близка к GCC. Не вижу противоречия. Если нет модификаций in-place, то строки COW имеют такую же производительность как и immutable (и там и там копируется только ссылка, а не тело строки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 12:27 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. Не верится. Нет исходников проверить, но в MSDN написано MSDNReferences, pointers, and iterators that designate elements of the controlled sequence can become invalid after any call to a function that alters the controlled sequence, or after the first call to a non-const member function. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 13:01 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly MoskovskyА как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. Не верится. Нет исходников проверить, но в MSDN написано MSDNReferences, pointers, and iterators that designate elements of the controlled sequence can become invalid after any call to a function that alters the controlled sequence, or after the first call to a non-const member function. Во что не верится? Что в VS нет COW в строках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 13:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, Не думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. Извините, а чем COW отличается от иммутабельности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 16:59 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglпропущено... Не верится. Нет исходников проверить, но в MSDN написано пропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. petrav>Извините, а чем COW отличается от иммутабельности ? Это разные несвязанные концепции. Иммутабельность - это наследуемый const. Соответственно, если строка иммутабельна, то поменять можно только через COW или аналог. Хотя надо иметь в виду, что есть разница: 1. immutable (char)[] str; // тут строку, т.е указателю можно присвоить другой массив или расширить этот, но содержимое менять низзя. Это строки D2 2. immutable (char[] str) // тут строку переприсвоить нельзя, а содержимое изменяемое 3. immutable (char[]) str; // как 1, но расширить массив тоже нельзя Из-за наследуемости компилятору легче оптимизировать иммутабельные вещи. Они же легко разделяются между потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:23 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravSiemarglНе думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. Извините, а чем COW отличается от иммутабельности ? Буквочкой W :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovskyпропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. А вы запустите студию. Скопируйте одну строку в другую и на содержимое объектов - в отладчике. Там разные указатели будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:49 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglpetrav>Извините, а чем COW отличается от иммутабельности ? Это разные несвязанные концепции. Иммутабельность - это наследуемый const. Соответственно, если строка иммутабельна, то поменять можно только через COW или аналог. Хотя надо иметь в виду, что есть разница: 1. immutable (char)[] str; // тут строку, т.е указателю можно присвоить другой массив или расширить этот, но содержимое менять низзя. Это строки D2 2. immutable (char[] str) // тут строку переприсвоить нельзя, а содержимое изменяемое 3. immutable (char[]) str; // как 1, но расширить массив тоже нельзя Из-за наследуемости компилятору легче оптимизировать иммутабельные вещи. Они же легко разделяются между потоками. Ничего не понял, если честно. Какой-то ад по моему. То строку можно перезаписать, то только расширить. Как так можно программировать не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:52 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovskyпропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. Если взять конкретно VS2008, то я допускаю что возможно там некий счетчик и есть (не проверял). Но копирование там точно есть и это легко проверить не заглядывая в исходник STL. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:56 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, проверил. В VS2008 уже не COW, где-то по дороге с VS98 поменяли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 22:07 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, проверил. В VS2008 уже не COW, где-то по дороге с VS98 поменяли. Ссылки по теме http://stackoverflow.com/questions/707014/why-vc-strings-are-not-reference-counted http://us.generation-nt.com/answer/vc6-stl-string-reference-counting-help-7938142.html Поменяли с VC6 на VC7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 22:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Нашли важный workaround, мешавший интегрировать C/C++ и D библиотеки в Win32 из-за несовершенства тулкита Andrej Mitrovic Currently we have this issue where we can't link D combiled object files with C applications on Win32 (assuming the D code exports some names with extern(C)). The problem is optlink outputs OMF type object files, and pretty much all modern Win32 C compilers (VC/MinGW) expect COFF object file types. There's agner's objconv tool that can dissasemble optlink's OMF format, but it won't convert optlink's OMF to COFF since it keeps running into errors. However, there might be a workaround. *Please not that this is purely experimental*: First, download the Delphi Driver Development Kit (DDDK) from here: https://sites.google.com/site/delphibasics/home/delphibasicsprojects/delphidriverdevelopmentkit In the bin folder there's a tool called 'omf2d'. This is a tool that converts Borland's OMF to Intel OMF format, but it seems to be able to convert Optlink's OMF format to an OMF format that Objconv can use. My guess is that omf2d simply discards sections it doesn't understand and therefore Objconv uses the resulting object file without errors. I do not know how safe this is, so take it with a large grain of salt. Second, download objconv.exe from: http://www.agner.org/optimize/. Third, make sure you have MinGW installed since it comes with gcc.exe which we'll use, or you can modify the batch file I'm providing and use MSVC instead (I haven't tested this with MSVC yet). Make sure both omf2d and objconv are in PATH. Then, download the zip file with the sample project, extract and run the batch file that does all the work: http://dl.dropbox.com/u/9218759/staticObjLink.zip I've tried using this with .lib files, but Objconv couldn't convert the .lib file even after passing it through omf2d, it still keeps getting errors. So for now this only seems to work with .obj files (compiled with DMD -c). And I don't know to what extent this will work since this is the only example I've tried using this technique with for now. Jan 17 2011 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2011, 14:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Однако, красота. Сам себе ORM на шаблонах Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2011, 11:28 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Случилось!Version D 2.052 Feb 17, 2011 New/Changed Features 64 bit support for Linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 10:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Не спеша подтягиваются графические библиотеки. Поддерживаются DMD2 теперь DWT и GtkD. Также доводится до ума с использованием возможностей D много кем любимый Qt (QtD). Хелловорлдный пример с комментами ниже Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2011, 20:48 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorych, А что, С++ уже стабильная ВЕРСИЯ появилась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 09:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
TIOBE Programming Community Index for September 2011 September Headline: Programming Language D back in the top 20 тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:40 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
maytonА по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Готов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу.Это конечно печально, что устаревшие кодировки всё ещё используются, особенно для неанглоязычного текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 18:26 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=37047805&tid=2019165]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 173ms |

| 0 / 0 |
