diff --git a/bundle.json b/bundle.json index 844f0f0644737a6a933071268ea929cd525a93e3..9f4f5620f97e5e9c3012a1cabe8d617e535c09cf 100644 --- a/bundle.json +++ b/bundle.json @@ -33,6 +33,7 @@ "data_share", "eventhandler", "hilog", + "hitrace", "ipc", "napi", "samgr", diff --git a/interfaces/kits/js/BUILD.gn b/interfaces/kits/js/BUILD.gn index 4f420fad0ae5fb513c265717ce38f90ad7962c7a..4e3b2a727686ef84569451e41642111ecaa1a30f 100644 --- a/interfaces/kits/js/BUILD.gn +++ b/interfaces/kits/js/BUILD.gn @@ -153,6 +153,7 @@ ohos_shared_library("fs") { external_deps = [ "hilog:libhilog", + "hitrace:hitrace_meter", "napi:ace_napi", ] @@ -217,6 +218,7 @@ ohos_shared_library("hash") { external_deps = [ "hilog:libhilog", + "hitrace:hitrace_meter", "napi:ace_napi", ] defines = [ "OPENSSL_SUPPRESS_DEPRECATED" ] @@ -274,6 +276,7 @@ ohos_shared_library("statfs") { external_deps = [ "hilog:libhilog", + "hitrace:hitrace_meter", "napi:ace_napi", ] } @@ -296,6 +299,7 @@ ohos_shared_library("statvfs") { external_deps = [ "hilog:libhilog", + "hitrace:hitrace_meter", "napi:ace_napi", ] } @@ -319,6 +323,7 @@ ohos_shared_library("environment") { external_deps = [ "access_token:libtokenid_sdk", "hilog:libhilog", + "hitrace:hitrace_meter", "ipc:ipc_core", "napi:ace_napi", ] @@ -345,6 +350,7 @@ ohos_shared_library("securitylabel") { external_deps = [ "access_token:libtokenid_sdk", "hilog:libhilog", + "hitrace:hitrace_meter", "ipc:ipc_core", "napi:ace_napi", ] diff --git a/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp b/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp index 71bb328b3d3d4161c803ac2b4569ecda17072ffb..db22263edc8e7bebb4d4788aebaaaee46d36a05a 100644 --- a/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/copy_file.cpp @@ -197,6 +197,7 @@ static tuple ParseJsOperand(napi_env env, NVal pathOrFdFromJsArg napi_value CopyFile::Sync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyFileSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -232,11 +233,13 @@ napi_value CopyFile::Sync(napi_env env, napi_callback_info info) return nullptr; } } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateUndefined(env).val_; } napi_value CopyFile::Async(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyFileAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -276,6 +279,7 @@ napi_value CopyFile::Async(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyFileAsync", 2); return { NVal::CreateUndefined(env) }; }; diff --git a/interfaces/kits/js/src/mod_fs/properties/copydir.cpp b/interfaces/kits/js/src/mod_fs/properties/copydir.cpp index 3dcaea202ad133ae3aa84fe0904d08299b62cc6e..2e1c9b3abebf7edce5d566cdfc5efcdb819e299c 100644 --- a/interfaces/kits/js/src/mod_fs/properties/copydir.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/copydir.cpp @@ -231,6 +231,7 @@ static napi_value PushErrFilesInData(napi_env env, vector napi_value CopyDir::Sync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyDirSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -252,6 +253,7 @@ napi_value CopyDir::Sync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateUndefined(env).val_; } @@ -262,6 +264,7 @@ struct CopyDirArgs { napi_value CopyDir::Async(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyDirAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -300,6 +303,7 @@ napi_value CopyDir::Async(napi_env env, napi_callback_info info) } else if (arg->errNo) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "CopyDirAsync", 2); return NVal::CreateUndefined(env); }; diff --git a/interfaces/kits/js/src/mod_fs/properties/listfile.cpp b/interfaces/kits/js/src/mod_fs/properties/listfile.cpp index e046e174517d0d2fb836b0c6b712efc23adc7655..a8859f42c76e57fb17185de915c6ad52e87efc59 100755 --- a/interfaces/kits/js/src/mod_fs/properties/listfile.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/listfile.cpp @@ -319,6 +319,7 @@ static napi_value DoListFileVector2NV(napi_env env, const string &path, vectordirents, optionArgsTmp.recursion) }; }; diff --git a/interfaces/kits/js/src/mod_fs/properties/move.cpp b/interfaces/kits/js/src/mod_fs/properties/move.cpp index e1ed33fe8c1b8a41a07b6eead6ead166fe5cef94..73e63984bfbedc69ab5d367c00de145c2b034f94 100644 --- a/interfaces/kits/js/src/mod_fs/properties/move.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/move.cpp @@ -194,6 +194,7 @@ static int MoveFile(const string &src, const string &dest, int mode) napi_value Move::Sync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -210,11 +211,13 @@ napi_value Move::Sync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateUndefined(env).val_; } napi_value Move::Async(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -239,6 +242,7 @@ napi_value Move::Async(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveAsync", 1); return { NVal::CreateUndefined(env) }; }; diff --git a/interfaces/kits/js/src/mod_fs/properties/movedir.cpp b/interfaces/kits/js/src/mod_fs/properties/movedir.cpp index 6f845c17dc2b4828b266e82244f83a62579e11ed..39209b1c366212bad635c75fcbec154345d12545 100644 --- a/interfaces/kits/js/src/mod_fs/properties/movedir.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/movedir.cpp @@ -317,6 +317,7 @@ static napi_value GetErrData(napi_env env, vector &errfiles) napi_value MoveDir::Sync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveDirSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -338,6 +339,7 @@ napi_value MoveDir::Sync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateUndefined(env).val_; } @@ -349,6 +351,7 @@ struct MoveDirArgs { napi_value MoveDir::Async(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveDirAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -386,6 +389,7 @@ napi_value MoveDir::Async(napi_env env, napi_callback_info info) } else if (arg->errNo) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MoveDirAsync", 1); return NVal::CreateUndefined(env); }; diff --git a/interfaces/kits/js/src/mod_fs/properties/open.cpp b/interfaces/kits/js/src/mod_fs/properties/open.cpp index e6052ab34f74372c7082c36be2f7906da8c2423a..d17309bdbdbbc81915b4e2e37672bc099b6fd97b 100644 --- a/interfaces/kits/js/src/mod_fs/properties/open.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/open.cpp @@ -158,6 +158,7 @@ static void OpenByMediaUri(const string &path, unsigned int mode, int &ret) napi_value Open::Sync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "OpenSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { HILOGE("Number of arguments unmatched"); @@ -221,6 +222,7 @@ napi_value Open::Sync(napi_env env, napi_callback_info info) return nullptr; } auto file = InstantiateFile(env, ret, pathStr, false).val_; + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return file; } @@ -285,6 +287,7 @@ static NError AsyncCbExec(shared_ptr arg, const string &path, napi_value Open::Async(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "OpenAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -317,8 +320,10 @@ napi_value Open::Async(napi_env env, napi_callback_info info) bool isUri = false; if (arg->path.empty() && arg->uri.size()) { isUri = true; + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "OpenAsync", 1); return InstantiateFile(env, arg->fd, arg->uri, isUri); } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "OpenAsync", 2); return InstantiateFile(env, arg->fd, arg->path, isUri); }; NVal thisVar(env, funcArg.GetThisVar()); diff --git a/interfaces/kits/js/src/mod_fs/properties/prop_n_exporter.cpp b/interfaces/kits/js/src/mod_fs/properties/prop_n_exporter.cpp index 4bcccb9e494c0a9135ba33f412a162fdf5d9285d..e3e5a21e7eed8f29f43eeaa379828c6148b730df 100644 --- a/interfaces/kits/js/src/mod_fs/properties/prop_n_exporter.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/prop_n_exporter.cpp @@ -63,6 +63,7 @@ using namespace OHOS::FileManagement::LibN; napi_value PropNExporter::AccessSync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "AccessSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE)) { HILOGE("Number of arguments unmatched"); @@ -94,11 +95,13 @@ napi_value PropNExporter::AccessSync(napi_env env, napi_callback_info info) if (ret == 0) { isAccess = true; } + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateBool(env, isAccess).val_; } napi_value PropNExporter::Access(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "AccessAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { HILOGE("Number of arguments unmatched"); @@ -137,6 +140,7 @@ napi_value PropNExporter::Access(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "AccessAsync", 2); return NVal::CreateBool(env, result->isAccess); }; @@ -231,6 +235,7 @@ napi_value PropNExporter::UnlinkSync(napi_env env, napi_callback_info info) napi_value PropNExporter::Mkdir(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MkdirAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { HILOGE("Number of arguments unmatched"); @@ -264,6 +269,7 @@ napi_value PropNExporter::Mkdir(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "MkdirAsync", 2); return { NVal::CreateUndefined(env) }; }; @@ -278,6 +284,7 @@ napi_value PropNExporter::Mkdir(napi_env env, napi_callback_info info) napi_value PropNExporter::MkdirSync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "MkdirSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE)) { HILOGE("Number of arguments unmatched"); @@ -305,12 +312,13 @@ napi_value PropNExporter::MkdirSync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } - + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateUndefined(env).val_; } napi_value PropNExporter::ReadSync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "ReadSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { @@ -353,7 +361,7 @@ napi_value PropNExporter::ReadSync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } - + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateInt64(env, static_cast(ret)).val_; } @@ -377,6 +385,7 @@ static NError ReadExec(shared_ptr arg, char *buf, size_t len, in napi_value PropNExporter::Read(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "ReadAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -418,6 +427,7 @@ napi_value PropNExporter::Read(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "ReadAsync", 2); return { NVal::CreateInt64(env, static_cast(arg->lenRead)) }; }; @@ -452,6 +462,7 @@ static NError WriteExec(shared_ptr arg, char *buf, size_t len, napi_value PropNExporter::Write(napi_env env, napi_callback_info info) { + StartAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "WriteAsync", 0); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::FOUR)) { HILOGE("Number of arguments unmatched"); @@ -494,6 +505,7 @@ napi_value PropNExporter::Write(napi_env env, napi_callback_info info) if (err) { return { env, err.GetNapiErr(env) }; } else { + FinishAsyncTrace(HITRACE_TAG_FILEMANAGEMENT, "WriteAsync", 2); return { NVal::CreateInt64(env, static_cast(arg->actLen)) }; } }; @@ -511,6 +523,7 @@ napi_value PropNExporter::Write(napi_env env, napi_callback_info info) napi_value PropNExporter::WriteSync(napi_env env, napi_callback_info info) { + StartTrace(HITRACE_TAG_FILEMANAGEMENT, "WriteSync"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { HILOGE("Number of arguments unmatched"); @@ -552,7 +565,7 @@ napi_value PropNExporter::WriteSync(napi_env env, napi_callback_info info) NError(ret).ThrowErr(env); return nullptr; } - + FinishTrace(HITRACE_TAG_FILEMANAGEMENT); return NVal::CreateInt64(env, static_cast(ret)).val_; } diff --git a/utils/filemgmt_libhilog/BUILD.gn b/utils/filemgmt_libhilog/BUILD.gn index e5dc1d3a7b3191d0c7578d7f773d0b5b24636c68..45d9b5efeb306527edb4166a72d859f54eb10dc0 100644 --- a/utils/filemgmt_libhilog/BUILD.gn +++ b/utils/filemgmt_libhilog/BUILD.gn @@ -23,7 +23,10 @@ config("log_public_config") { ohos_shared_library("filemgmt_libhilog") { public_configs = [ ":log_public_config" ] - external_deps = [ "hilog:libhilog" ] + external_deps = [ + "hilog:libhilog", + "hitrace:hitrace_meter" + ] subsystem_name = "filemanagement" innerapi_tags = [ "platformsdk" ] diff --git a/utils/filemgmt_libhilog/filemgmt_libhilog.h b/utils/filemgmt_libhilog/filemgmt_libhilog.h index 5f4c18b87aae41fe911ae8f2cc7f6e5cb98ae07c..f178820e226843153fcf75fe3abedbc26dd4ad80 100644 --- a/utils/filemgmt_libhilog/filemgmt_libhilog.h +++ b/utils/filemgmt_libhilog/filemgmt_libhilog.h @@ -17,6 +17,7 @@ #define FILEMGMT_LIBHILOG_H #include "hilog/log.h" +#include "hitrace_meter.h" #include diff --git a/utils/filemgmt_libn/BUILD.gn b/utils/filemgmt_libn/BUILD.gn index 6ebeaa444d0a8e7ed652b1f7213ea7d07f006537..1e39629ceafabb45bed657927f55b1a7c1757ef3 100644 --- a/utils/filemgmt_libn/BUILD.gn +++ b/utils/filemgmt_libn/BUILD.gn @@ -49,6 +49,7 @@ ohos_shared_library("filemgmt_libn") { external_deps = [ "hilog:libhilog", + "hitrace:hitrace_meter", "napi:ace_napi", ]