- 浏览: 154361 次
- 性别:
- 来自: 布尼塔尼亚
最新评论
-
aa87963014:
iTarget 写道弄清楚“事务”和“事物”打错字, 统一为事 ...
现在的数据库系统是否还需要事务? -
iTarget:
弄清楚“事务”和“事物”
现在的数据库系统是否还需要事务? -
aa87963014:
ipconfig1 写道 我现在也遇到这样的问题,当缓存的数据 ...
spring cache 拓展 -
aa87963014:
xcw931924821 写道楼主现在实现了吗?可以查看我的 ...
spring cache 拓展 -
xcw931924821:
楼主现在实现了吗?
spring cache 拓展
文章列表
记录一个libgdx event奇怪问题
- 博客分类:
- libgdx
InputEvent e = new InputEvent();
e.setType(Type.touchDown);
play.fire(e);
e.setType(Type.touchUp);
play.fire(e);
通过fire方法模拟clicked事件,但是遇到了一个奇怪额问题.
在A screen 的 A stage的初始化方法里面使用fire 方式进去另外一个 B screen 的 B stage,然后B stage 无法接收鼠标事件.能不能接收键盘事件 没去查.
但是 如果在进入 B stage之后,在构造方法里面 继续使用 fi ...
libgdx开发记录
- 博客分类:
- libgdx
libgdx开发各种记录,对客户端开发一窍不通:
1.发现libgdx开发的游戏场景有内存泄露的情况,一开始以为是某些性能问题.但是没有仔细查找原因.
后来打开jvirtualvm,查看什么对象在不停的增长.结果发现Texture 在不停的被创建.说明有 ...
程序员最不愿见到的就是程序抛出异常
经常会做些激进的测试,然后各种各样的异常都会抛出来
用户量增多,并发量加大如果没有去加以控制会发生一堆让你头疼的问题.
如:
cpu 达到100%,
占用内存增大,垃圾回收时间增长,jvm卡顿
流量增大,
线程安全/阻塞
数据库线程池耗尽,获取不到连接 抛出一些异常.这些异常然后会导致业务出现异常,然后数据出现错误.
并发量增加,大量的单例模式导致 业务层面的线程安全问题凸显
还有的破坏性测试,结果发现业务数据会出现混乱
一堆喜闻乐见的问题.
现在,我们来处理这些问题:
1.数据库连接池获取连接超时
假如数据库连接池设定的是 ...
数据库连接池数量测试
- 博客分类:
- 多线程
线程数量设置的地方有3个,业务线程池 数据库连接池 数据库最大线程数
数据库最大线程数设置为500,只是为了不让连接池数量大于这个数,可无视这个数
测试代码,一个查询语句 一个update语句.
查询语句无论怎么测试区别不是很明显 就先不去讨论这个,或者后面我再测试下.
代码:
public class SqlThread {
@Autowired
IUserDao userDao;
@Test
public void test() throws InterruptedException {
int size = 10000;
List& ...
本文纯属经验之谈,关于单线程和多线程与程序性能的关系!
首先绝大多数设备都是多核的,多线程能比单线程更充分的利用cpu,多线程如果使用线程池就能省下创建线程的开销.如果只是纯粹的计算可能会比单线程要高,而且计算量越大差距会越明显
在我们的实际业务中,以读取数据库为例,当涉及到各种的io操作情况下,毫不犹豫的应该选择多线程了,能避免io传输带来无谓的耗时. 处理能力得到有效的提升.
----------以上为单线程与多线程分析-------
标题讲的是多线程数量与程序性能的关系.
我们在设置线程池数量的时候,很可能对这个数据感到疑惑.2?3?4? 还是传说中的 ...
greenvm按照作者说的做一开始没成功,
因为几点:
1.作者似乎没说清楚步骤
实际上应该是:
解压后的文件夹内GreenJVM.exe 和 vm.cfg是最重要的
最好是新建一个单独的文件夹,把这2个文件放进去
然后打开vm.cfg 一行行的查看配置
其中关注 SET_VM_NAME SET_START_JAR_PATH 和 SET_START_MAIN_CLASS
其他的不用修改
SET_VM_NAME 就是 jre的压缩文件位置, GreenJVM会解压这个压缩文件 变成 jre目录.
然后 如果jre的lib文件夹里面有pack200文件,它会解压成ja ...
最近做了点小东西,给人运行的时候不可能几kb的程序 还要附带一个100M的jre吧.
so,参照网上的一些做法.
再加工了一下,整出了个4mb大小的JRE
2个版本:
一种适合greenJvm的jre, jar被pack200压缩过
另外一种则是普通的jre
似乎只支持awt swing 不支持socket 等功能
GreenJVM 的提取rt.jar 功能老是失败.不清楚是为什么,可能用到了jni之类的东西吧.
有更好的方法请告诉我下
普通版本上传不了,下次再传
上传.
spring el bug?
- 博客分类:
- 随便记点东西
遇到一个spring el 表达式的问题,非常诡异
大概是这样:
EL1007E:(pos 38): Field or property 'xx' cannot be found on null
左看右看 这个xx不可能为 null,因为它是 int 类型,具体来说为什么会出现这种问题,以后再看,现在先记录下~~
先说遇到的问题:
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:117)
at com.mysql.jdbc.util.ReadAheadInputStrea ...
protostuff 是什么就不多说了,前段时间用来做通信的序列号模块
直入主题,
就是关于probuff 不支持的格式的字段,例如Date
通信的时候,客户端反序列化报错
异常信息也没办法google出一个结果来
我反复查看是否字节解析错误,是否粘包没处理好,但是没发现问题.
然后我把服务端序列化的字节存储起来,在服务端上直接反序列化 结果还是一样的错误!!!!WTF
万念俱灰之下,我开始考虑类里面定义的常量是否影响结果
最后我想起probuff部分类型是不支持的,例如 Date
再想起实体里面有Date 类型的属性.立马删除测试.
结果还是 ...
用libgdx开发了一小段时间,做做笔记有的地方也许不对见谅
1.使用libgdx看重了跨平台功能和使用java语言开发两点
2.这个框架使用起来还是非常简单.方便的,而且可以直接用桌面版运行测试,大大的提高了开发效率
3.建议使用,opengl2来开发 虽然少部分机型不支持
4.事件传递是从stage开始
暂时就这么点了
freyja2多数据源版本
- 博客分类:
- Freyja2
多数据源在之前的单数据源需要改动部分配置
如果要分成2个数据、1个表
实际上会有3个数据库
freyja freyja_0 freyja_1
原库保留 freyja的t_user 要进行分库、分表
就要在 freyja_0、freyja_1 创建 t_user_0(分1个表 就创建一个 2个表就创建2个,t_user_0、t_user_1)
USE `freyja_0`;
DROP TABLE IF EXISTS `t_user_0`;
CREATE TABLE `t_user_0` (
`uid` int(11) NOT NULL AUTO_INCREME ...
准备了个freyja实例项目(单数据源版)
- 博客分类:
- Freyja2
好久没整理了。今年使用freyja-jdbc freyja-cache 做了2个项目了。
年底就整理下,本来想整个项目剔除业务之后放出来。结果删啊删啊全删了,于是只是把测试用例放了出来
附件就是 jar包和eclipse工程源码。
数据库在config文件里面 只有2个表
单数据源,配置文件在jdbc 里面修改。第一个数据源里面修改连接信息就好了
主要在 PropertyTest测试用例里面展示了下 freyja2 jdbc的语法 等
UserTest 里面展示了下 freyja-cache使用annotation方式 无侵入维护缓存。cache方面实际上好像远不 ...
代码不是写完了就over了
- 博客分类:
- 随便记点东西
1、传入错误的参数
2、异常中断流程,一个业务代码里面内容有很多,影响流程的代码可能就那么一块,其他地方用来处理一些不是很紧要的逻辑。
例如有这么一个简单的sql查询:“select * from t_user where id =1”,如果1是绝对存在的话,则还有可能出现mysql服务器连接超时异常。超时异常大家实际上属于比较少见的,但是确实有可能出现这个异常,还有另外一种情况,这句代码写在一个线程里面。还有可能出现获取连接中断异常,当然这个和你线程如何使用有关。如果你不需要中断线程则不会出现这种异常。
不用提并发异常、数据库约束异常等等,发生这些异常的条件并不难达到。
...
svn commit 500
- 博客分类:
- 随便记点东西
svn服务器用的是visualSVN Server图形界面管理的
有一天无法commit,爆500错误 什么!svn/me 什么的
然后搞来搞去最后网上找到一个办法。。。
在界面的全局设置里面的常规选项卡auto xxxx 勾选/取消勾选重启 然后再勾选 ok了
Open the VisualSVN Server GUI.
Right-Click on "VisualSVN Server (domain)" at the root of the left navigation pane and select "Prope ...