Text
This commit is contained in:
parent
d8e0ffcd66
commit
43c149b481
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user