The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от opennews (ok) on 14-Дек-17, 13:42 
Компания СиПроВер опубликовала (https://www.viva64.com/ru/b/0542/) результаты сравнения качества кода СУБД Firebird, MySQL и PostgreSQL, проведённого по результатам проверки при помощи  продукта PVS-Studio (http://www.viva64.com/ru/pvs-studio/), позволяющего выявить ошибки, дефекты и потенциальные уязвимости на основе статического анализа кода.


Если рассматривать все выданные анализатором предупреждения, то результат проверки выглядит следующим образом:


СУБД


Высокий уровень достоверности предупреждений


Средний уровень достоверности


Низкий уровень достоверности


Всего


Firebird


156


680


1045


1881


MySQL


902


1448


2925


5275


PostgreSQL


611


1432


1576


3619

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

При рассмотрении числа предупреждений по отношению к количеству строк кода, Firebird и PostgreSQL показали примерно одинаковые результаты (у PostgreSQL много предупреждений в автосгенерированном коде). В  MySQL число предупреждений немного выше, но не существенно. Другая ситуация наблюдается при попытке ручной проверки типовых предупреждений. Например, MySQL  присвоено 3 штрафных балла за
проблемы затирания приватных данных, 1 штрафной балл за отсутствие проверки валидности указателя, возвращаемого malloc, 3 штрафных балла за использование потенциально нулевого указателя, 2 балла за подозрительное использование элементов перечислений, 2 балла за неверное вычисление размера блока памяти и 2 балла за пропущенное ключевое слово throw.


В свою очередь, PostgreSQL получил лишь 3  штрафных балла за использование потенциально нулевого указателя, а  Firebird получил 1 штрафной балл за подозрительное использование элементов перечислений, 2 балла за вызов неверного оператора освобождения памяти и 1  балл за использование потенциально нулевого указателя. В итоге, меньше всего штрафных баллов получил PostgreSQL - 3, на втором месте Firebird - 4 и худший результат показал MySQL - 13 штрафных баллов.


С учётом того, что в PostgreSQL выявлено достаточно много предупреждений в автосгенерированном коде, а отрыв в один бал от Firebird вызван проблемой среднего уровня достоверности, решено поделить первое место между PostgreSQL и Firebird.

URL: https://www.viva64.com/ru/b/0542/
Новость: http://www.opennet.me/opennews/art.shtml?num=47740

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –9 +/
Сообщение от Дуплик (ok) on 14-Дек-17, 13:42 
Оно и понятно, MySQL та ещё дрянь. Не зря только KDE'шники её в составе своей DE тянут.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +2 +/
Сообщение от Аноним (??) on 14-Дек-17, 14:17 
О как, MySQL уже включили в состав KDE Applications! Закнчивай уже грибы жрать.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

61. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +6 +/
Сообщение от виндотролль (ok) on 14-Дек-17, 18:01 
MariaDB, но суть та же


[~]$ pacman -Si akonadi
Repository      : extra
Name            : akonadi
Version         : 17.08.3-3
Description     : PIM layer, which provides an asynchronous API to access all kind of PIM data
Architecture    : x86_64
URL             : https://community.kde.org/KDE_PIM/Akonadi
Licenses        : LGPL
Groups          : None
Provides        : akonadi-client
Depends On      : kio  kitemmodels  mariadb  hicolor-icon-theme
Optional Deps   : postgresql: PostgreSQL backend
Conflicts With  : akonadi-client
Replaces        : akonadi-client
Download Size   : 2.30 MiB
Installed Size  : 9.75 MiB
Packager        : Antonio Rojas <arojas@archlinux.org>
Build Date      : Thu 07 Dec 2017 06:41:09 AM EST
Validated By    : MD5 Sum  SHA-256 Sum  Signature

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

77. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +3 +/
Сообщение от Аноним (??) on 14-Дек-17, 22:33 
> MariaDB, но суть та же
>
 
> [~]$ pacman -Si akonadi


pkg options akonadi        
akonadi - MYSQL: off
akonadi - PGSQL: off
akonadi - SQLITE: on

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

85. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +2 +/
Сообщение от Аноним (??) on 15-Дек-17, 08:42 
Глюкавенько работает. Раньше тоже юзал sqlite, сейчас переключился на mariadb. Они, кстати, честно предупреждают об этом у себя на сайте, типа "мы пыталися, но нишмогли".
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

106. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от MBG on 15-Дек-17, 21:30 
А в переписке девелоперы аконади говорили, что не пытались... и от помощи отказались, я предлагал. Два студента из Пакистана (если правильно помню) сделали проект и оно работает - уже молодцы, а вот кто решил это как есть тащить в КДЕ - успешные менеджеры, видимо.
Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

27. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –13 +/
Сообщение от Аноним (??) on 14-Дек-17, 15:12 
Зачем эти люди тестировали MySQL, когда есть Percona? MySQL давно никому не нужен (разве что пацанам из PVS студио), MySQL мертв, его засосала корпоративная трясина.

Кроме того в тесте не хватает SQlite.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

59. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –3 +/
Сообщение от Fantomas (??) on 14-Дек-17, 17:45 
В Постгре только сейчас появилась нормальная репликация и то только мастер-слейв.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

63. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +1 +/
Сообщение от Аноним (??) on 14-Дек-17, 18:46 
Юзаю потоковую репликацию уже х.з. мколько лет.
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

72. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Вареник on 14-Дек-17, 21:22 
"Только сейчас" появились полноценные конфигурации кластера.
Несколько лет как появились выборочные репликации (с анализом потока и фильтрами(.

А просто горячая репликация мастер-реплики - лет 15 точно есть. Версии так с 7-й.

Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

74. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Аноним (??) on 14-Дек-17, 21:27 
В постгрес нормальная репликация появилась давно, по сути в 8.0 уже был Warm standby.
8.0 (2005): Point-in-time recovery
8.2 (2006): Warm standby
9.0 (2010): Hot Standby
9.1 (2011): Synchronous Replication
9.4 (2014): Slots, Logical decode
9.6 (2016): Multiple sync standby, Remote apply
10 (2017): Logical replication, Quorum commit
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

76. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –1 +/
Сообщение от Андрей (??) on 14-Дек-17, 21:58 
А толку от бажного функционала?
Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

2. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +5 +/
Сообщение от Аноним (??) on 14-Дек-17, 13:44 
> ...решено поделить первое место между PostgreSQL и Firebird.

а MySQL в этом случае остаётся на третьем месте? или автоматически занимает освободившееся второе? автор, прошу -- допиши концовку, этож самое главное!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –1 +/
Сообщение от Andrey Mitrofanov on 14-Дек-17, 13:48 
>> ...решено поделить первое место между PostgreSQL и Firebird.
> а MySQL в этом случае остаётся на третьем месте? или автоматически занимает
> освободившееся второе? автор, прошу -- допиши концовку, этож самое главное!

Не главное -- это, где посадки, пожизненные дисквалификации, лишения флага и звёзды на спину!?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +10 +/
Сообщение от commiethebeastie (ok) on 14-Дек-17, 14:11 
Сравнили firebird и postgres, у моего hello world`а еще меньше ошибок.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +11 +/
Сообщение от A.Stahl (ok) on 14-Дек-17, 14:32 
Так ведь цель не в сравнении, а в рекламе...
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

35. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –2 +/
Сообщение от Аноним (??) on 14-Дек-17, 15:54 
> Сравнили firebird и postgres, у моего hello world`а еще меньше ошибок.

И что там такого радикального кроме расширений и многофайловости?
А если взять по нуждам текущего большинства пользователей то они вполне себе совпадают по функционалу для такой выборки.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

49. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +1 +/
Сообщение от commiethebeastie (ok) on 14-Дек-17, 16:44 
Издеваетесь? В огнептице даже репликации нет.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

58. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от анон on 14-Дек-17, 17:30 
действительно, такая мелочь и отсутствует.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

60. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –10 +/
Сообщение от Аноним (??) on 14-Дек-17, 17:54 
Как будто в постгресе есть нормальная репликация.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

73. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +2 +/
Сообщение от Вареник on 14-Дек-17, 21:23 
> Как будто в постгресе есть нормальная репликация.

Есть конечно. Полная, выборочная, мастер-мастер.

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

107. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Аноним (??) on 16-Дек-17, 18:47 
> В огнептице даже репликации нет.

На самом деле есть, но она не встроенная в движок и потому плохая... что-то типа slony.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

48. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +9 +/
Сообщение от anonymous (??) on 14-Дек-17, 16:43 
Погонял на паре проектов. Ну что я могу сказать? Чуть получше clang-analyzer. Нашёл пару бесполезных условий, ну и кучу ложных срабатываний. Особенно не дружит с дефайнами и тем, что родил bison. Прога может и полезна, но ценник не радует совсем. Как-то слишком много за обычную утилиту.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

65. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 14-Дек-17, 19:24 
Предлагаю ради спортивного интереса более подробно поговорить про ложные срабатывания. По практике общения знаю, что иногда выясняется, что некоторые "ложные" предупреждения совсем не ложные. Не будем брать макросы. С ними всё понятно и предупреждения в них отключаются специальными комментариями. Да, требуется определённая настройка анализатора.
Давайте рассмотрим несколько других ложных срабатываний.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

66. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +2 +/
Сообщение от anonymous (??) on 14-Дек-17, 19:34 
Я бы рад, но ключик уже того... И да, из спортивного интереса как-то несерьёзно для такого солидного проекта.
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

67. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от anonymous (??) on 14-Дек-17, 19:47 
Но чтобы не быть голословным, вот один пример ложного срабатывания, который мозолил глаза больше всего:
warn V779 Unreachable code detected. It is possible that an error is present.

Это он выдаёт на функцию с названием abort(), реализованную в классе. Отличий от abort() и ::abort() анализатор различить не в состоянии.

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

70. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 14-Дек-17, 20:47 
Отличать он функции умеет. Но есть ряд функций, с "волшебными" именами, которые анализатор интерпретирует независимо в каком классе или namespace они находятся. К ним относится и функции с именем "assert". По нашей статистике в 95% случав, эти функции прекращают выполнение программы. Это или просто синоним стандартного abort или какая-то функция, которая что-то делает (например, пишет в лог), а уже потом останавливает программу. А раз так, значит надо реагировать на любую функцию abort, как прекращающую выполнение. Лучше угодить 95% разработчикам, чем не угодить 5% разработчиков. Что делать, вот такой он статический анализ.
Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

78. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +1 +/
Сообщение от Ordu email(ok) on 15-Дек-17, 01:22 
А проверить любую функцию с именем abort на предмет того, не является ли она no-return, как abort? PVS-Studio ведь анализирует как-то control flow, почему бы не сделать шаг дальше, не нарисовать полный call-graph и не проверить нет ли там внутри безусловного вызова abort, или exit, или ещё чего-нибудь в этом роде.

Кстати, gcc ведь позволяет вешать атрибут на функцию, чтобы отметить именно такое поведение (не помню как называется, может no-return). Почему бы не положиться на этот атрибут, для определения того, что функция не возвращает управление обратно? abort/exit из стандартной библиотеки, на них должен висеть этот атрибут в хидерах. И можно выдавать программисту предупреждение, если найдена no-return функция, на которой не висит этого атрибута. Или в C++ нет этих атрибутов? А, или вы на всякие не-gcc-компиляторы ориентируетесь, которые не умеют в атрибуты?

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

92. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 15-Дек-17, 09:42 
Всё верно говорите. Анализатор по возможности заглядывает в функции и учитывает атрибуты no-return.  Но без межмодульного анализа (он пока только в планах) не всегда возможно проследить цепочку вызовов и понять, закончится всё завершением программы или нет. Впрочем, и межмодульный анализ не всегда поможет, так как отслеживать цепочки сложно, особенно когда они ветвятся при разных условиях. На аннотации тоже особенно надеяться не приходится. Просто мало кто их пишет, поэтому отсутствие у функции атрибута no-return ничего не означает.

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

99. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Ordu email(ok) on 15-Дек-17, 17:51 
Конкретно с этим случаем ведь не нужен никакой особый межмодульный анализ. Достаточно повесить атрибут на функцию. Это может сделать автор кода или статический анализатор. Причём последний может это делать даже не правкой сорцов, а правкой своей собственной базы тегов, которую можно хранить в формате типа расщиренного ctags/etags (единственное, что анализатор от этого станет двупроходным). Вероятно, можно и другие атрибуты хранить, типа non-null, для функции возвращающей гарантированно не нулевой указатель. Или что-нибудь о том, как функция обходится с переданными ей указателями -- может быть она на них free вызывает, или, скажем, сохраняет в какой-нибудь структуре данных со временем жизни большим, чем время жизни стекового фрейма этой функции. Или функция полагается на то, что переданные ей аргументы не нули. А может быть она функция хорошая, и пользуется указателями не создавая никаких экзистенциальных рисков.

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

И тут ведь открываются любопытные перспективы. Начиная от того, что исследования того, как создать такую систему типов может быть полезным для развития разработчиков PVS-Studio, что само по себе даст конкуретное преимущество, и заканчивая тем, что если это исследование не сведётся к чтению уже существующих исследований возможностей типизации, но найдёт что-то своё, то эти находки можно оформить в виде статей, а через это, можно, например, кандидатскую защитить, PhD получить, или просто впихнуть упоминание PVS-Studio в computer science статью, которую будут читать все, кто в теме.

Я это не к тому излагаю, чтобы "научить как надо писать статические анализаторы" -- не, мне просто самому интересно, насколько точно моё видение перспектив отражает реальность.

Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

101. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 15-Дек-17, 19:15 
То, про что вы говорите, мы называем базой разметки функций. Про это я писал в статье "Как PVS-Studio ищет ошибки: методики и технологии": https://habrahabr.ru/company/pvs-studio/blog/319382/ (см. раздел Method annotations). Анализатор черпает информацию из этой базы, или пытается сам создать информацию о функции, изучив её тело, или берет некоторую информацию, основываясь на атрибутах функций, таких как __declspec() / __attribute__(()) / [[attribute]] и наконец, следуя особым комментариям пользователей (см. например. "Дополнительные возможности" в описании диагностики V576 https://www.viva64.com/ru/w/v576/ ).

Делается большая работа, но не смотря на не часто анализатор по-прежнему слеп и ему остаётся руководствуется "чутьем", как в рассматриваемом случае.

Ответить | Правка | ^ к родителю #99 | Наверх | Cообщить модератору

103. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –1 +/
Сообщение от anonymous (??) on 15-Дек-17, 19:44 
> А проверить любую функцию с именем abort на предмет того, не является ли она no-return, как abort?

Уже давно есть. Почему-то тот же QtCreator спокойно переходит на неё по F2, а не лезет в недра stdlib.h

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

105. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Ordu email(ok) on 15-Дек-17, 20:01 
>> А проверить любую функцию с именем abort на предмет того, не является ли она no-return, как abort?
> Уже давно есть. Почему-то тот же QtCreator спокойно переходит на неё по
> F2, а не лезет в недра stdlib.h

F2 -- это "сохранить файл"? Какое это отношение имеет к "проанализировать функцию на предмет, возвращает ли она управление или нет"?

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

102. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от anonymous (??) on 15-Дек-17, 19:40 
Это частный пример. Если для каждого ошибочного срабатывания набирать по 5%, то тогда ой. Как-то сложно пытаться потом вытащить из сотни ложных срабатываний реальные ошибки. И заметим, ценник на продукт весьма хорош.
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

104. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 15-Дек-17, 19:47 
Анализатор PVS-Studio часто требует настройки. Как и любой другой анализатор. После настройки количество ложных срабатываний становится низким и с ними можно точечно бороться комментариями или изменением кода. Пример: Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний - https://www.viva64.com/ru/b/0523/

Ответить | Правка | ^ к родителю #102 | Наверх | Cообщить модератору

71. "Голосование"  –7 +/
Сообщение от Andrey_Karpov (ok) on 14-Дек-17, 20:50 
Пользуясь случаем, приглашаю всех почитать статью "PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA" и принять участие в голосовании: https://habrahabr.ru/company/pvs-studio/blog/344734/
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

93. "Голосование"  +2 +/
Сообщение от Аноним (??) on 15-Дек-17, 10:55 
> Пользуясь случаем

Сколько заплатил опеннету за "случай"?

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

82. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +1 +/
Сообщение от лютый жабист__ on 15-Дек-17, 05:24 
По-моему надо было Монгу проверить, у неё рыночная доля 80%, а FireBird видел 1 раз в махровом недоынтырпрайзе.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

108. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Гоги on 16-Дек-17, 19:56 
Монга - лютая хипстота, хайп из пука. Фиребирд - какой-никакой, а коммерческий движок стандартных реляционных СУБД. Так что нет, тестирование вполне адекватное с серьёзным перевесом FB.
Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

83. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –2 +/
Сообщение от Аноним (??) on 15-Дек-17, 07:18 
sqlite не включили чтобы сильно не ползорить остальных?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

84. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от лютый жабист__ on 15-Дек-17, 07:59 
>sqlite не включили чтобы сильно не ползорить остальных?

Просто эталонный код? На чём основаны Ваши фантазии?

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

109. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от пох on 17-Дек-17, 23:47 
бгг... но на самом деле в sqlite половина кода - автогенеренная, там пользы от статического анализатора будет мало, а ложных срабатываний дофига.

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

94. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karp0v on 15-Дек-17, 11:46 
А что насчёт https://scan.coverity.com/
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

98. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  –2 +/
Сообщение от Andrey_Karpov (ok) on 15-Дек-17, 16:36 
Хороший и очень дорогой инструмент. Впрочем, не так уж он и хорош. Иначе, не было бы статей, например, про проверку Clang (который проверяется с помощью Coverity): https://www.viva64.com/ru/b/0108/ , https://www.viva64.com/ru/b/0155/ , https://www.viva64.com/ru/b/0446/
Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

95. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +1 +/
Сообщение от Аноним (??) on 15-Дек-17, 11:46 
мне больше cppcheck нравится
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

96. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Casm (??) on 15-Дек-17, 12:03 
Для достоверности не хватает анализа кода самого PVS-Studio
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

97. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Andrey_Karpov (ok) on 15-Дек-17, 16:33 
Проверяем исходный код плагина PVS-Studio с помощью PVS-Studio - https://habrahabr.ru/company/pvs-studio/blog/279437/
Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

110. "Сравнение качества кода Firebird, MySQL и PostgreSQL в анали..."  +/
Сообщение от Мирон email on 18-Дек-17, 06:12 
Всё хорошо, но Постгресс глубокая база. Там по - настоящему знать надо, чтобы толком писать. А на MySQL каждый выпускник тех вуза чет слепит, посчитает расходы ресурсов, и вроде про.

Ну и как - то так получилось, что Multiversion Concurrency Control (MVCC), только недавно "победила". Теперь все пишут MVCC или в стадии конверсии к MVCC.

Наверное чем берёт, это поддержкой Oracle. Всё - таки когда у команды есть такой тыл, это многое решает. Ну и потом их InnoDB конечно встроил поддержку сложных структур с единым интегрированным потоком данных ( один файл/базу, ну или для улучшения скейла можно добавить на отдельные диски ), этого у Постгресса вплоть до версии 8 не видел, а с 9-й времени посмотреть пока не было, как был файл/таблица так и есть. А при многопоточной обработке данных с тысячами таблиц, это конечно распыляет ресурсы машины. Хотя в отличие от например MVCC в этом споре последнее слово пока не сказано.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру