This commit is contained in:
Andrei Astafev 2019-04-22 08:13:35 +03:00
parent d8e0ffcd66
commit 43c149b481
4 changed files with 368 additions and 69 deletions

View File

@ -8,7 +8,7 @@ summary:
Если в локальной сети необходимо синхронизировать время, не имея
авторитетного источника времени, то можно использовать локальные
часы сервера в качестве базовых. В этом случае файл настройки
`/etc/ntp.conf` на сервере будет выглядеть так:
`/etc/ntp.conf` на сервере `192.168.0.1` будет выглядеть так:
```
driftfile /var/lib/ntp/ntp.drift
@ -21,8 +21,7 @@ restrict 192.168.0.0 mask 255.255.255.0
restrict default nomodify notrap
```
Файл `/etc/ntp.conf` на клиенте, работающем в подсети `192.168.0.0/24`,
и получающем время от сервера `192.168.0.1`, имеет вид:
Файл `/etc/ntp.conf` на клиенте из подсети `192.168.0.0/24` имеет вид:
```
driftfile /var/lib/ntp/ntp.drift

View File

@ -8,7 +8,7 @@ summary:
## Общее описание
Чтобы профилировать приложения, компилируемые [GCC](http://gcc.gnu.org),
необходимо добавлять флаг `-fno-omit-frame-pointer` и желательно `-g`.
необходимо добавлять флаг `-fno-omit-frame-pointer` и, желательно, `-g`.
## quickstack
@ -25,7 +25,7 @@ quickstack -f -p $(pidof application)
в каталоге `tools/perf`).
```sh
perf record --call-graph dwarf -- yourapp
perf record --call-graph dwarf -- ./application
perf report -g graph --no-children
```
@ -49,6 +49,20 @@ opcontrol --setup --vmlinux=/boot/vmlinux-`uname -r`
## Valgrind
[Хорошая статья](https://eax.me/valgrind/) об использовании Valgrind для поиска
утечек, а также о взаимодействии с GDB.
В версии 3.15 добавление инструмент профилирования кучи DHAT (Dynamic
Heap Analysis Tool), позволяющий отследить все запросы на распределения
памяти в куче и выявить утечки ресурсов, места излишне большой активности
при работе с кучей, неиспользованные выделения памяти, краткосрочные
выделения и неэффективное размещение данных в куче.
```sh
valgrind --tool=dhat ./application
```
## gperftools

View File

@ -1,25 +1,26 @@
---
title: Проверка именования в Clang Tidy
title: "Проверка именования в Clang Tidy"
category: Программирование
tags: C++, программирование, clang, clang-tidy
tags: C++, программирование, clang, clang-tidy, форматирование,
summary:
CSS: table-100.css
toc: yes
...
[TOC]
Программа Clang Tidy проверяет стилистику регистра идентификаторов.
Возможные варианты стилей:
lower_case
UPPER_CASE
camelBack
CamelCase
camel_Snake_Back
Camel_Snake_Case
aNy_CasE
```
lower_case
UPPER_CASE
camelBack
CamelCase
camel_Snake_Back
Camel_Snake_Case
aNy_CasE
```
Также существует возможность проверки префиксов и суффиксов идентификаторов.
@ -45,8 +46,6 @@ CheckOptions:
и примеры соответствующего кода приведены ниже.
## Синтаксис
@ -209,7 +208,7 @@ NamespaceSuffix | `''`
```cpp
namespace TEST_ns {
...
}
```
@ -217,7 +216,7 @@ namespace TEST_ns {
```cpp
namespace test_ns {
...
}
```
@ -235,7 +234,7 @@ InlineNamespaceSuffix | `''`
```cpp
namespace test_ns {
inline namespace InlineNamespace {
...
}
} // namespace test_ns
```
@ -245,7 +244,7 @@ inline namespace InlineNamespace {
```cpp
namespace test_ns {
inline namespace inline_namespace {
...
}
} // namespace test_ns
```
@ -295,34 +294,15 @@ typedef int my_int;
## Переменные
### Variable (Переменная)
Параметр | Значение
-------------------------------|----------------
VariableCase | `lower_case`
VariablePrefix | `''`
VariableSuffix | `''`
Пример кода до форматирования:
```cpp
unsigned TestVariable;
```
Пример кода после форматирования:
```cpp
unsigned testvariable;
```
### Variable (Переменная) ???
### GlobalVariable (Глобальная переменная)
Параметр | Значение
-------------------------------|----------------
VariableCase | `lower_case`
VariablePrefix | `''`
VariableSuffix | `''`
GlobalVariableCase | `lower_case`
GlobalVariablePrefix | `''`
GlobalVariableSuffix | `''`
Пример кода до форматирования:
@ -333,7 +313,7 @@ unsigned GlobalVariable;
Пример кода после форматирования:
```cpp
unsigned globalvariable;
unsigned global_variable;
```
@ -348,13 +328,19 @@ LocalVariableSuffix | `''`
Пример кода до форматирования:
```cpp
unsigned Local_Variable;
int function() {
int LocalVariable = 0;
return LocalVariable;
}
```
Пример кода после форматирования:
```cpp
unsigned local_variable;
int function() {
int local_variable = 0;
return local_variable;
}
```
### StaticVariable (Статическая переменная)
@ -362,7 +348,7 @@ unsigned local_variable;
Параметр | Значение
-------------------------------|----------------
StaticVariableCase | `lower_case`
StatcVariablePrefix | `''`
StaticVariablePrefix | `''`
StatucVariableSuffix | `''`
Пример кода до форматирования:
@ -374,32 +360,162 @@ unsigned staticVariable;
Пример кода после форматирования:
```cpp
unsigned staticvariable;
unsigned static_variable;
```
### ConstexptVariable (Переменная constexpr)
Параметр | Значение
-------------------------------|----------------
ConstexprVariableCase | `lower_case`
ConstexprVariablePrefix | `''`
ConstexprVariableSuffix | `''`
Пример кода до форматирования:
```cpp
constexpr int get_five() {
return ( 2 + 3 );
};
constexpr int CONST_FIVE = get_five();
```
Пример кода после форматирования:
```cpp
constexpr int get_five() {
return ( 2 + 3 );
};
constexpr int const_five = get_five();
```
### GlobalPointer (Глобальный указатель)
Параметр | Значение
-------------------------------|----------------
GlobalPointerCase | `lower_case`
GlobalPointerPrefix | `''`
GlobalPointerSuffix | `''`
### LocalPointer(Локальный указатель)
Пример кода до форматирования:
```cpp
void* globalPointer;
```
Пример кода после форматирования:
```cpp
void* global_pointer;
```
### LocalPointer (Локальный указатель)
Параметр | Значение
-------------------------------|----------------
LocalPointerCase | `lower_case`
LocalPointerPrefix | `''`
LocalPointerSuffix | `''`
Пример кода до форматирования:
```cpp
void* LocalPointer;
```
Пример кода после форматирования:
```cpp
void* localpointer;
```
### Member (Член) ???
### Member (Член)
### ClassMember (Член класса) ???
### ClassMember (Член класса)
### PrivateMember (Приватный член)
Параметр | Значение
-------------------------------|----------------
PrivateMemberCase | `camelBack`
PrivateMemberPrefix | `'m_'`
PrivateMemberSuffix | `''`
Пример кода до форматирования:
```cpp
class ClassWithPrivateMember {
private:
int PrivateMember;
};
```
Пример кода после форматирования:
```cpp
class ClassWithPrivateMember {
private:
int m_privateMember;
};
```
### PrivateMember (Приватная переменная)
### ProtectedMember (Защищённый член)
Параметр | Значение
-------------------------------|----------------
ProtectedMemberCase | `camelBack`
ProtectedMemberPrefix | `''`
ProtectedMemberSuffix | `''`
Пример кода до форматирования:
```cpp
class ClassWithProtectedMember {
protected:
int ProtectedMember;
};
```
Пример кода после форматирования:
```cpp
class ClassWithProtectedMember {
protected:
int protectedMember;
};
```
### ProtectedMember (Защищённая переменная)
### PublicMember (Публичный член)
Параметр | Значение
-------------------------------|----------------
PublicMemberCase | `camelBack`
PublicMemberPrefix | `''`
PublicMemberSuffix | `''`
### PublicMember (Публичная переменная)
Пример кода до форматирования:
```cpp
class ClassWithPublicMember {
protected:
int PublicMember;
};
```
Пример кода после форматирования:
```cpp
class ClassWithPublicMember {
protected:
int publicMember;
};
```
## Константы
@ -409,37 +525,218 @@ unsigned staticvariable;
### GlobalConstant (Глобальная константа)
Параметр | Значение
-------------------------------|----------------
GlobalConstantCase | `UPPER_CASE`
GlobalConstantPrefix | `''`
GlobalConstantSuffix | `''`
Пример кода до форматирования:
```cpp
const int theOne = 1;
```
Пример кода после форматирования:
```cpp
const int THE_ONE = 1;
```
### LocalConstant (Локальная константа)
Параметр | Значение
-------------------------------|----------------
LocalConstantCase | `UPPER_CASE`
LocalConstantPrefix | `''`
LocalConstantSuffix | `''`
Пример кода до форматирования:
```cpp
int functionWithLocalConstant() {
const int LocalConstant = 0;
return LocalConstant;
}
```
Пример кода после форматирования:
```cpp
int functionWithLocalConstant() {
const int LOCAL_CONSTANT = 0;
return LOCAL_CONSTANT;
}
```
### StaticConstant (Статическая контстанта)
Параметр | Значение
-------------------------------|----------------
StaticConstantCase | `UPPER_CASE`
StaticConstantPrefix | `''`
StaticConstantSuffix | `''`
### ClassConstant (Константа класса)
Пример кода до форматирования:
```cpp
int functionWithStaticConstant() {
const int StaticConstant = 0;
return StaticConstant;
}
```
Пример кода после форматирования:
```cpp
int functionWithStaticConstant() {
const int STATIC_CONSTANT = 0;
return STATIC_CONSTANT;
}
```
### ClassConstant (Константный член)
Параметр | Значение
-------------------------------|----------------
ClassConstantCase | `UPPER_CASE`
ClassConstantPrefix | `''`
ClassConstantSuffix | `''`
Пример кода до форматирования:
```cpp
class ClassWithConstMember {
public:
const int constant_member = 0;
};
```
Пример кода после форматирования:
```cpp
class ClassWithConstMember {
public:
const int CONSTANT_MEMBER = 0;
};
```
### GlobalConstantPointer (Глобальный константный указатель)
Параметр | Значение
-------------------------------|----------------
GlobalConstantPointerCase | `UPPER_CASE`
GlobalConstantPointerPrefix | `''`
GlobalConstantPointerSuffix | `''`
Пример кода до форматирования:
```cpp
void* global_pointer;
void* const GlobalConstPointer = global_pointer;
```
Пример кода после форматирования:
```cpp
void* global_pointer;
void* const GLOBAL_CONST_POINTER = global_pointer;
```
### LocalConstantPointer (Локальный константный указатель)
Параметр | Значение
-------------------------------|----------------
LocalConstantPointerCase | `UPPER_CASE`
LocalConstantPointerPrefix | `''`
LocalConstantPointerSuffix | `''`
Пример кода до форматирования:
```cpp
void* functionWithLocalConstPointer() {
void* pointer = nullptr;
void* const LocalConstPointer = pointer;
return LocalConstPointer;
}
```
Пример кода после форматирования:
```cpp
void* functionWithLocalConstPointer() {
void* pointer = nullptr;
void* const LOCAL_CONST_POINTER = pointer;
return LOCAL_CONST_POINTER;
}
```
### ConstMember (Константный член)
## Функции
### Function (Функция)
### Function (Функция) ??
### GlobalFunction (Глобальная функция)
Параметр | Значение
-------------------------------|----------------
GlobalFunctionCase | `camelBack`
GlobalFunctionPrefix | `''`
GlobalFunctionSuffix | `''`
{: .testtt}
Пример кода до форматирования:
```cpp
int global_function() {
return 0;
}
```
Пример кода после форматирования:
```cpp
int globalFunction() {
return 0;
}
```
### ConstexptFunction (Функция constexpr)
Параметр | Значение
-------------------------------|----------------
ConstexptFunctionCase | `camelBack`
ConstexptFunctionPrefix | `''`
ConstexptFunctionSuffix | `''`
Пример кода до форматирования:
```cpp
constexpr int get_five() {
return ( 5 );
}
```
Пример кода после форматирования:
```cpp
constexpr int getFive() {
return ( 5 );
}
```
### Method (Метод)
@ -626,17 +923,6 @@ class EasyTest {
};
```
Лексическая единица: Регистр имени константной переменной, получающей значение из функции
Параметр: readability-identifier-naming.ConstexprVariableCase
Значение: lower_case
Пример: `const_five`
Пример кода:
```cpp
constexpr int get_five() {
return ( 2 + 3 );
};
constexpr int const_five = get_five();
```
Лексическая единица: Регистр имени перечисления
Параметр: readability-identifier-naming.EnumCase

View File

@ -11,7 +11,7 @@ toc: yes
### C
* [nanomsg](http://nanomsg.org): сетевое взаимодействие
* [noping](https://noping.cc): работа с ICMP-пакетами
* [oping](https://noping.cc): работа с ICMP-пакетами
* [openblas](https://github.com/xianyi/OpenBLAS): оптимизированная версия
[BLAS](https://ru.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)