opreport似乎报告了错误的模板实例化

问题描述

我当前正在尝试分析共享库。不幸的是,sprof似乎无法在我的系统上运行,因此我正在使用oprofile。

但是,当我调查配置文件数据时,大多数时间都表明要花在模板化方法上。这是可以预期的,因为大多数数字计算都在该方法中。但是,opreport表示此模板花费了一定的时间。这可能可以解释为什么计算似乎比预期的慢。这些专长中的一些专长包括优化的代码,而其他专长则没有,并且opreport表示花费时间在优化程度较低的版本上。共享库包括实例化的两个版本,但是我必须知道决定采用哪个版本的代码是否正确。

我在模板中添加了一些import requests from allauth.socialaccount.providers.oauth2.views import ( OAuth2Adapter,OAuth2CallbackView,OAuth2LoginView,) from config.settings.base import EXAMPLE_URLS from app.users.auth_provider.provider import ExampleProvider class ExampleAdapter(OAuth2Adapter): provider_id = ExampleProvider.id access_token_url = EXAMPLE_URLS["web"] + "oauth/token" authorize_url = EXAMPLE_URLS["web"] + "oauth/authorize" profile_url = EXAMPLE_URLS["api"] + "me" def complete_login(self,request,app,access_token,**kwargs): headers = {"Authorization": "Bearer %s" % access_token} extra_data = requests.get(self.profile_url,headers=headers) return self.get_provider().sociallogin_from_response(request,extra_data.json()) oauth2_login = OAuth2LoginView.adapter_view(ExampleAdapter) oauth2_callback = OAuth2CallbackView.adapter_view(ExampleAdapter) ,这些似乎表明采用了正确的专业化,但是我仍然对opreport输出感到困惑。

编辑

以下是有关我在做什么的更多详细信息。该代码必须能够在任何长度的输入上运行,但是如果我知道大小,我可以对其进行优化。所以我正在做这样的事情:

cout

在实际的代码中,我使用一些模板魔术来允许将代码优化为的最大数量为template<size_t N> struct simulator { static void run(...) // optimized version for known N }; template<> struct simulator<0> { static void run(...) // unoptimized version for any size }; void simulate(....) { switch(n) { case(1): simulator<1>::run(...); break; case(2): simulator<2>::run(...); break; ... default: simulator<0>::run(...); } } ,但是想法是相同的。现在,我需要确保实际上#define从未被调用过,而本来就不应该调用它。但是opreport表示仅运行了此命令,没有其他命令(simulator<0>::run()不同意。)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...