crawlserv / crawlservpp

crawlserv++: Application for crawling and analyzing textual content of websites.
Other
5 stars 0 forks source link

optimize padding of config strutures for crawler & extractor #139

Open crawlserv opened 3 years ago

crawlserv commented 3 years ago

clang-tidy gives optimized orders for Module::Crawler::Config and Module::Extractor::Config

current output:

/home/ans/git/repository/crawlserv/src/Main/../Module/Crawler/Config.hpp:127:10: warning: Excessive padding in 'struct crawlservpp::Module::Crawler::Config::Entries' (61 padding bytes, where 5 is optimal). 
Optimal fields order: 
crawlerReTries, 
crawlerSleepError, 
crawlerSleepHttp, 
crawlerSleepIdle, 
crawlerSleepMySql, 
crawlerUrlChunks, 
expectedQuery, 
redirectQueryContent, 
redirectQueryUrl, 
crawlerArchivesNames, 
crawlerArchivesUrlsMemento, 
crawlerArchivesUrlsTimemap, 
crawlerParamsAdd, 
crawlerParamsBlackList, 
crawlerParamsWhiteList, 
crawlerQueriesBlackListContent, 
crawlerQueriesBlackListTypes, 
crawlerQueriesBlackListUrls, 
crawlerQueriesLinks, 
crawlerQueriesLinksBlackListContent, 
crawlerQueriesLinksBlackListTypes, 
crawlerQueriesLinksBlackListUrls, 
crawlerQueriesLinksWhiteListContent, 
crawlerQueriesLinksWhiteListTypes, 
crawlerQueriesLinksWhiteListUrls, 
crawlerQueriesWhiteListContent, 
crawlerQueriesWhiteListTypes, 
crawlerQueriesWhiteListUrls, 
crawlerReCrawlAlways, 
crawlerRetryHttp, 
customCounters, 
customCountersAlias, 
customCountersAliasAdd, 
customCountersEnd, 
customCountersStart, 
customCountersStep, 
customTokenHeaders, 
customTokens, 
customTokensCookies, 
customTokensKeep, 
customTokensQuery, 
customTokensSource, 
customUrls, 
redirectHeaders, 
redirectVarNames, 
redirectVarQueries, 
redirectVarSources, 
crawlerStart, 
redirectCookies, 
redirectTo, 
customTokensUsePost, 
crawlerLock, 
crawlerTidyErrors, 
crawlerMaxBatchSize, 
crawlerUrlMaxLength, 
crawlerArchives, 
crawlerLogging, 
crawlerReCrawl, 
crawlerReCrawlStart, 
crawlerRepairCData, 
crawlerRepairComments, 
crawlerRetryArchive, 
crawlerRetryEmpty, 
crawlerStartIgnore, 
crawlerTidyWarnings, 
crawlerTiming, 
crawlerUrlCaseSensitive, 
crawlerUrlDebug, 
crawlerUrlStartupCheck, 
crawlerWarningsFile, 
crawlerXml, 
customCountersGlobal, 
customReCrawl, 
customRobots, 
customUsePost, 
expectedErrorIfLarger, 
expectedErrorIfSmaller, 
redirectUsePost, 
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
                struct Entries {
                       ^
/home/ans/git/repository/crawlserv/src/Main/../Module/Crawler/Config.hpp:127:10: note: Excessive padding in 'struct crawlservpp::Module::Crawler::Config::Entries' (61 padding bytes, where 5 is optimal). Optimal fields order: [...]
/home/ans/git/repository/crawlserv/src/Main/../Module/Extractor/Config.hpp:151:10: warning: Excessive padding in 'struct crawlservpp::Module::Extractor::Config::Entries' (47 padding bytes, where 7 is optimal). 
Optimal fields order: 
generalCacheSize, 
generalReTries, 
generalSleepError, 
generalSleepHttp, 
generalSleepIdle, 
generalSleepMySql, 
pagingAliasAdd, 
pagingFirst, 
pagingIsNextFrom, 
pagingNextFrom, 
pagingNumberFrom, 
pagingStep, 
extractingRecursiveMaxDepth, 
expectedQuery, 
generalRetryHttp, 
variablesAlias, 
variablesAliasAdd, 
variablesDateTimeFormat, 
variablesDateTimeLocale, 
variablesName, 
variablesParsedColumn, 
variablesParsedTable, 
variablesQuery, 
variablesSource, 
variablesTokens, 
variablesTokensCookies, 
variablesTokensQuery, 
variablesTokensSource, 
variablesTokenHeaders, 
sourceHeaders, 
extractingDatasetQueries, 
extractingDateTimeFormats, 
extractingDateTimeLocales, 
extractingDateTimeQueries, 
extractingErrorFail, 
extractingErrorRetry, 
extractingFieldDateTimeFormats, 
extractingFieldDateTimeLocales, 
extractingFieldDelimiters, 
extractingFieldNames, 
extractingFieldQueries, 
extractingIdIgnore, 
extractingIdQueries, 
extractingRecursive, 
linkedDatasetQueries, 
linkedDateTimeFormats, 
linkedDateTimeLocales, 
linkedDelimiters, 
linkedFieldNames, 
linkedFieldQueries, 
linkedIdIgnore, 
linkedIdQueries, 
generalTargetTable, 
pagingAlias, 
pagingFirstString, 
pagingVariable, 
sourceCookies, 
sourceUrl, 
sourceUrlFirst, 
linkedLink, 
linkedTargetTable, 
expectedParsedColumn, 
expectedParsedTable, 
variablesTokensUsePost, 
extractingFieldIgnoreEmpty, 
extractingFieldJSON, 
extractingFieldTidyTexts, 
extractingFieldWarningsEmpty, 
linkedIgnoreEmpty, 
linkedJSON, 
linkedTidyTexts, 
linkedWarningsEmpty, 
generalLock, 
generalTidyErrors, 
generalMaxBatchSize, 
generalExtractCustom, 
generalLogging, 
generalMinimizeMemory, 
generalReExtract, 
generalTidyWarnings, 
generalTiming, 
sourceUsePost, 
extractingOverwrite, 
extractingRemoveDuplicates, 
extractingRepairCData, 
extractingRepairComments, 
linkedOverwrite, 
expectedErrorIfLarger, 
expectedErrorIfSmaller, 
expectedSource, 
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
                struct Entries {
                       ^
/home/ans/git/repository/crawlserv/src/Main/../Module/Extractor/Config.hpp:151:10: note: Excessive padding in 'struct crawlservpp::Module::Extractor::Config::Entries' (47 padding bytes, where 7 is optimal). Optimal fields order: [...]