首先确认的一点是 你是不是使用的ARC?
你可以先看一下这个问题 排除是否是框架本身的问题如果不是框架的问题就要考虑是设计的问题
那就要具体在看代码了....

解决方案 »

  1.   

    没有使用ARC,暂时还不习惯这种自动管理被内存的方式。我其实怀疑是cell释放的问题,我打印cell的retainCount,在retrun cell之前,是有问题的,但是cell有着实不能释放。纠结ing
      

  2.   

    那你的聊天排版是不是用的第三方的? 看对方是不是用的arc你没有设置啊....
      

  3.   

    我的个人建议是这个: ImagesCharacterArrange *tempI_imageCharact = [[ImagesCharacterArrange alloc] init];每次加载一个cell,就开辟一次内存,虽然说你已经release了,但是内存还在堆栈里的。你还不如自定义一个cell,用ib关联,这样每次都可以重用,而不是每次新建立的cell,都要再开辟一次内存。
      

  4.   

    对于内存泄漏最好还是用Leak测试一下,看看具体在什么地方。
    同意楼上朋友所说的,最好还是自定义一个cell类,不要每次都addSubview
      

  5.   


    曾经简单测试,一个viewcontroller  dimss之前,,release了的内存,不会即时回收,只有当viewcontroller dimss之后,这个viewcontroller中alloc的内存才会被回收掉。目前我还没证实这是我的幻觉或是使用错误。抑或还是OC本身就是这样的一种机制。
    LZ的问题,如果是从聊天窗口离开的时候,可以把聊天窗口dimss掉,内存占用的状况应该会好转。
      

  6.   

    这是oc的机制,release以后就算retaincount为0也不会马上释放内存,只有当前runloop退出以后才会去清
      

  7.   

    感谢各位大侠的热心参与,经过这几天的仔细观察,断点什么的。发现有两个问题,问题1:基本就是5楼道友秒描述的问题,我是这样解决的,“所有的消息经过图文混排(顺便说一句,这个图文混排的类是没有问题的,也也没有应用ARC)生成一个UIView的数组,大于15个数组时候,删除前面陈旧的消息,类似于队列的功能(避免占用内存越来越大) ,然后设置cell的时候只需要到数组里面取相应的UIView即可,而不用当新消息进来时,刷新tableView的时候在每个cell中alloc(用xib或者storyboard做的话,本质上问题还是有的);问题2:做了问题1中的修改之后,内存还是会疼疼的增加,小弟忘记关掉 僵尸模式了(然后又活活的折腾了半天,粗心害死人啦)。
        最后我想,这种思路做聊天室,性能还是不可靠的。我觉得如果是json而不是socket方式不是更好!