Php 我的内存使用假设:正确吗?

Php 我的内存使用假设:正确吗?,php,memory-management,Php,Memory Management,当ran消耗17mb内存时,我有一个脚本(使用memory\u get\u peak\u usage()记录) 脚本每天运行100万次。 每日总内存消耗量:1700万mb 每天86400秒 17000000/86400=196.76 假设:每天运行该脚本100万次将需要至少196.76个专用内存 我的假设正确吗?是的,但是如果它同时被调用多次呢?您有多个线程同时运行 编辑:还有,为什么脚本每天运行一百万次?(除非你有一个巨大的网站)是的,但是如果它同时被多次调用呢?您有多个线程同时运行 编辑:还

当ran消耗17mb内存时,我有一个脚本(使用memory\u get\u peak\u usage()记录)

脚本每天运行100万次。 每日总内存消耗量:1700万mb

每天86400秒

17000000/86400=196.76

假设:每天运行该脚本100万次将需要至少196.76个专用内存


我的假设正确吗?

是的,但是如果它同时被调用多次呢?您有多个线程同时运行


编辑:还有,为什么脚本每天运行一百万次?(除非你有一个巨大的网站)

是的,但是如果它同时被多次调用呢?您有多个线程同时运行


编辑:还有,为什么脚本每天运行一百万次?(除非你有一个巨大的网站)

< P>我不认为这个计算会给出正确的结果,因为你还需要考虑其他因素,如-< /P>
  • 脚本运行的时间
  • 一次运行的脚本数是多少
  • 在整个时间段内分发脚本调用

  • 在你的计算中,除以86400秒有什么意义?为什么不是几小时或几毫秒。对我来说,计算似乎是没有意义的。

    < P>我不认为这个计算会给出正确的结果,因为你还需要考虑其他因素,如-< /P>
  • 脚本运行的时间
  • 一次运行的脚本数是多少
  • 在整个时间段内分发脚本调用

  • 在你的计算中,除以86400秒有什么意义?为什么不是几小时或几毫秒。对我来说,这个计算似乎毫无意义。

    如果脚本在相同的时间运行1000000个拷贝,那么您将获得1700万MB,但由于它在完成后释放内存,您不会将使用量添加到总数中


    您需要知道同时运行的拷贝数,并将该数字乘以17MB。这将是最大内存使用量。

    如果脚本在相同的时间运行1000000个拷贝,那么您将获得1700万MB,但当它在完成后释放内存时,您不会将使用量添加到总数中


    您需要知道同时运行的拷贝数,并将该数字乘以17MB。这将是最大内存使用量。

    不完全正确;在脚本执行的前一百次,它很可能都能很好地放入内存中;因此,头两分钟左右可能会像预期的那样进行。但是,一旦您将计算机推入交换,您的计算机将花费大量时间处理交换,因此接下来的999800次执行可能会比您预期的慢很多。而且,随着他们都开始争夺磁盘带宽,它运行的时间越长,情况就越糟

    我也不确定php memory\u get\u peak\u usage()函数的用法;它是程序所需内存的“内部”视图,而不是操作系统的视图。情况可能更糟。(也许解释器需要20兆RSS才能运行hello world,也许不是。)


    我不确定对于您的应用程序来说什么是最好的前进方式:也许它可以是一个单一的长期流程,在发布事件时处理事件并返回结果。它可能能够在更少的内存空间中运行。也许结果不会每0.0005秒改变一次,你可以将结果缓存一秒钟,每天只运行86400次。或者你可能需要再买几台机器。:)

    不完全正确;在脚本执行的前一百次,它很可能都能很好地放入内存中;因此,头两分钟左右可能会像预期的那样进行。但是,一旦您将计算机推入交换,您的计算机将花费大量时间处理交换,因此接下来的999800次执行可能会比您预期的慢很多。而且,随着他们都开始争夺磁盘带宽,它运行的时间越长,情况就越糟

    我也不确定php memory\u get\u peak\u usage()函数的用法;它是程序所需内存的“内部”视图,而不是操作系统的视图。情况可能更糟。(也许解释器需要20兆RSS才能运行hello world,也许不是。)


    我不确定对于您的应用程序来说什么是最好的前进方式:也许它可以是一个单一的长期流程,在发布事件时处理事件并返回结果。它可能能够在更少的内存空间中运行。也许结果不会每0.0005秒改变一次,你可以将结果缓存一秒钟,每天只运行86400次。或者你可能需要再买几台机器。:)

    你知道,我假设如果我有一个每分钟运行16次的脚本,这意味着因为16盎司=1品脱,60*1品脱=7.5加仑/小时。7.5 / 3.14159265 = 2.3873. 因此,每分钟运行16次我的脚本将产生2.38杯牛奶的消耗量。JK,我是一个恶作剧者。17mb对于一个php脚本IMHO来说非常重要。apache for php中的默认内存限制为每个进程8mb。很明显,你可以改变它,但它告诉了你17mb的内存,不是吗?@naugtur:也许你可以在压缩文件时达到它,然后再将它们交给用户?文件压缩、大型mySQL查询和表联接是造成大量内存消耗的原因。这不是你问题的答案,但可能对你有用。尝试使用apache基准测试或生成大量wget查询,并监视mem消耗。你甚至可以在本地主机上运行。你知道,我假设如果我有一个每分钟运行16次的脚本,这意味着16盎司=1品脱,60*1品脱=7.5加仑/小时。7.5 / 3.14159265 = 2.3873. 因此,每分钟运行16次我的脚本将产生2.38杯牛奶的消耗量。JK,我是个恶作剧者17mb是