0 0

一个函数执行超慢,百思不得其解10

@Override
    public String saveRole(Role role) 
    {
        String result = "-1";
        String token = tokens.get(role.getUsername());
        RoleInfo info = userInfos.get(token);
        if(info != null)
        {
            info.role = role;
            this.savaToCacheThread.add(role);
            result = "0";
        }
        return result;
    }


把info.role = role;注释掉。函数瞬间完成,否则超慢(5000次20秒)。。
函数入参是从socket反序列化过来的。
求解啊。。。。
问题补充
ptma 写道
你该检查一下 savaToCacheThread 中的 add 方法

这个方法没问题。我测试过的
问题补充
cobb.chan 写道
ztiny 写道
info.role = role; 

改成
info.setRole(role);

正解...


用方法哪有直接赋值的快。。。。
问题补充
光明左使 写道
用了hibernate? 打开sql显示,看看所有的sql输出,是不是有什么语句造成了速度慢?

和SQL没关系啊。。。
问题补充
抛出异常的爱 写道
200TPS
对于只读操作已经很慢了
//RoleInfo info = userInfos.get(token);//把这句注释
info = new info();//换成这个
如果变慢就应该是实体BEAN的托管问题。

最好的办法是改变缓存策略
把login时更换token操作先存入缓存。
再批量异步存入数据库中


问题是我没有用任何的框架。。。userInfos里面记录了登录中的用户。。不能新new一个啊。。。我现在还只有缓存层。没有用到数据库。。
2012年6月25日 10:19

5个答案 按时间排序 按投票排序

0 0

写个单元测试,跑下
vistualVM 看下内存消耗

2012年6月27日 21:55
0 0

引用
否则超慢(5000次20秒)

每次4毫秒,这也叫超慢?

2012年6月25日 15:02
0 0

貌似楼主放在缓存里的是role对象。
那么为什么还要执行info.role = role;  呢
不太理解。

2012年6月25日 11:45
0 0

我比较同意cobb.chan的观点,要改成.info.setRole(role);因为中间可能涉及到类型转换的问题

2012年6月25日 11:36
0 0

debug模式下,比较一下role那行被注释掉和没被注释掉 一行一行执行info.role = role; 
    this.savaToCacheThread.add(role);这两句函数的执行过程 看看有啥区别。。。。

再琢磨琢磨代码具体那个地方慢了。。

2012年6月25日 11:06

相关推荐

    提供Qt中快速多次发射信号与耗时槽函数的链接解决方案

    默认情况下,信号和槽之间的连接是同步的,这意味着当一个信号被触发时,与其相连的所有槽函数都会立即执行。如果槽函数执行时间过长,可能会阻塞其他信号的处理,导致性能下降。 解决方案一:异步信号槽连接 Qt...

    建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。

    还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。 编程环境:vs2010,语言:...

    powerbi DAX函数

    日期和时间函数用于处理日期和时间数据,包括 DATE 函数、DATEVALUE 函数、DAY 函数、EDATE 函数、EOMONTH 函数、HOUR 函数、MINUTE 函数、MONTH 函数、NOW 函数、SECOND 函数、TIME 函数、TIMEVALUE 函数、TODAY ...

    特殊函数概论

    《特殊函数概论》较系统地讲述了一些主要的特殊函数,如超几何函数、勒让德函数、合流超几何函数、贝塞耳函数、椭圆函数、椭球谐函数、马丢(Mathieu)函数等。同时也阐明一些在讨论特殊函数时常用的概念和理论,如...

    DLL接口函数查看工具

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种可重用的代码库,包含了一组可执行的函数和过程,供多个程序共享使用。DLL接口函数则是这些可调用的功能点,允许应用程序通过调用这些...

    JavaScript函数式编程.pdf

    柯里化是一种将使用多个参数的函数转换成一系列使用单一参数的函数的技术。在JavaScript中,柯里化通过创建多个闭包来实现。柯里化有助于参数复用和延迟计算,使得函数调用更加灵活。 7. 组合(Composition) ...

    C语言标准函数库详解.pdf

    在C语言标准函数库中,有多个头文件,每个头文件都提供了一组相关的函数。这些头文件包括:、、、、、、、、、、、、等。 每个头文件都提供了不同的函数,例如:头文件提供了断言函数assert(),用于在程序中添加...

    Benchmark functions 优化算法测试函数

    8. **Rosenbrock.m**:Rosenbrock函数,又称香蕉函数,是一个著名的非凸、单谷函数,其特点是有一个长长的、狭窄的山谷,需要算法有良好的曲面追踪能力。 9. **Griewank.m**:Griewank函数是一个非凸、多模态函数,...

    详解 Mysql中的delimiter定义及作用

    学过oracle的人,再来学mysql就会感到很奇怪,百思不得其解。 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。 默认情况下,delimiter是分号(;) 。 在命令行客户端中,如果有一行命令以...

    VC++ DLL 实现回调函数的实例

    回调函数则是编程中一种常见的设计模式,它允许函数将控制权返回给调用者,使得调用者可以在适当的时候执行特定的处理逻辑。在VC++中,将回调函数实现在DLL中,可以提供更加灵活的跨模块通信方式。 首先,我们需要...

    在simulink中应用s函数的一个简单实例

    在本实例中,我们将探讨如何在Simulink中应用S函数来设计一个简单的连续系统。 首先,理解S函数的基本结构至关重要。S函数分为两种类型:MATLAB S函数和C/C++ S函数。MATLAB S函数直接用MATLAB脚本编写,适合快速...

    遗传算法寻找函数最优解(最小值)

    通过遗传算法,求解函数的最优解,其特点是,运算速度快,运行结果精确

    最优化 外点罚函数 实例 有matlab程序.zip

    最优化是数学和计算机科学中的一个关键领域,其目标是找到一个函数的全局最小值或最大值。在解决复杂的优化问题时,外点罚函数法是一种广泛应用的技术。本实例主要探讨了如何使用MATLAB编程来实现这一方法。 外点罚...

    DLL函数查看工具

    标题中的“DLL函数查看工具”指的是一个专门用来查看动态链接库(DLL)文件中包含的函数的软件。DLL是Windows操作系统中的一种共享库机制,它允许多个程序共享同一段代码和数据,从而节省内存资源并方便软件开发。...

    sublime显示函数列表插件

    ctags可以解析多种编程语言的语法,生成一个索引文件,使得编辑器能够快速定位到函数、类、变量等编程元素的定义位置。因此,理论上FuncPreview可以通过适当的配置和扩展,以支持ctags支持的所有语言,如C、C++、...

    Windows API 函数参考手册

    书中详细介绍了每一个Win32 API函数的使用方法,其中着重介绍其原型表示、函数说明、参数说明、注意事项、相应头文件(.H)、链接库(.LIB或.DLL)和典型示例。对于每个函数《Windows API 函数参考手册》给出了相应...

    遗传算法GA求函数最小值

    在“计算智能函数最小值”这个案例中,我们可以设定一个目标函数,如二次函数、指数函数或复杂数学函数,然后使用遗传算法来找到该函数的最小值。通过调整种群规模、交叉概率、变异概率等参数,观察算法在不同设置下...

    不完全伽马函数的计算

    不完全伽马函数在数学和计算机科学中是一个重要的特殊函数,尤其在概率论、统计学、信号处理等领域有着广泛的应用。在VC(Visual C++)环境中实现不完全伽马函数的数值计算,需要理解该函数的定义、性质以及如何通过...

    C++画数学函数图象

    1. vs2008里弄了一个画数学函数的类,基本的函数都可以画,当然复杂的也可以,只是函数本身需要调用者设计,已经变量的范围 2. 最后的图象提供两种方式输出,一个是bmp文件,一个是gif图象,gif需要注意它的256种...

    ADS函数大全

    ### ADS函数大全知识点详解 #### 一、引言与概述 根据给定的文档信息,“ADS函数大全”是一篇详尽介绍了ADS(Advanced Design ...对于希望深入了解ADS功能并充分利用其强大能力的用户来说,这是一份宝贵的资源。

Global site tag (gtag.js) - Google Analytics