开发者社区 问答 正文

为什么使用gd画图以后要销毁资源?

MySQL关闭(也算一种销毁吧)的是连接,
gd销毁的是画布。

MySQL的连接算一个进程,gd的画图算什么呢?内存吗?
为什么画布特别耗费资源呢?消耗的是那部分资源呢?CPU?内存?还是其他?

给点指示谢谢

展开
收起
杨冬芳 2016-05-27 16:03:18 2264 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    1.MySQL 连接是线程,不是进程
    客户端发起连接到 mysql server,mysql server 监听进程,监听到新的请求,然后 mysql 为其分配一个新的 thread,去处理此请求。从建立连接之开始,CPU 要给它划分一定的 thread stack,然后进行用户身份认证,建立上下文信息,最后请求完成,关闭连接,同时释放资源,在高并发的情况下,将给系统带来巨大的压力,不能保证性能。所以,mysql 通过线程缓存来是实现线程重用,减小这部分的消耗;一个 connection 断开,并不销毁承载其的线程,而是将此线程放入线程缓冲区,并处于挂起状态,当下一个新的 Connection 到来时,首先去线程缓冲区去查找是否有空闲的线程,如果有,则使用之,如果没有则新建线程。

    2.gd释放,是释放内存
    将图像被输出以后,画布中的内容也不再有用。出于节约系统资源的考虑,就需要及时清除画布占用的所有内存资源。

    2019-07-17 19:18:09
    赞同 展开评论