How would you disable the option to skip the surname list? I wonder if that would help with my memory problems. It looked like someone used that option right before he left my database early in the day I began having the memory problems before the server was shut down. Few people were on after that. That option can generate a lot of names in my database. I don't allow editing on-line, use four name limits on charts. I have upgraded to the newest version. I noticed that the server seemed to run slow, and when I checked, four of us were on the database. It seemed to speed up when they all left. Any more ideas for things I can do to stop the "memory leak" my service says I have?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-01-28
Hello,
At the moment it is not possible to disable the skip surname list. To remove the links totally, remove these lines from the famlist.php
if ($show_all=="yes"){
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else if ((!isset($alpha)) || ($alpha=="")) {
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else {
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?alpha=$alpha&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?alpha=$alpha&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
print_help_link("skip_sublist_help", "qm");
and from the indilist.php:
if ($show_all=="yes"){
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else if ((!isset($alpha)) || ($alpha=="")) {
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a><br />\n";
}
else {
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?alpha=$alpha&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?alpha=$alpha&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
print_help_link("skip_sublist_help", "qm");
You will find these lines at the end of both files. Please put in an RFE if you would like to make it an option.
Regards,
Roland
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks Roland. This is a bit scary, but I should be able to do it. It would be a good option to have. I have over 800 with one surname, and that can create a rather large page when combined with all the other surnames with that letter. I may have figured out the memory problem... user error, of course. The PHP timeout was set very high so my son could upload the program after he built it on his machine. It was never set lower... Seems like the program works better now. Faster.... I hope this solves my problem....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First I would like to clarify a few things and explain somethings about how PHP works so that you can better understand what might be causing the problems. I will also discuss some of the other things external to PhpGedView that will affect its performance.
The term "memory leak" is not a correct term in this case. Memory leaks are most commonly caused when an object is created in memory and then the variable referencing that object is destroyed without cleaning the object out of memory, thus leaving the object floating around in memory for eternity with nobody claiming it. PHP has garbage collection that detects if an object is not referenced and removes it from memory. So a PHP script cannot have "memory leaks".
PHP is also limited in the amount of memory that it can use. The default setting is 8MB. If PHP ever exceeds this 8MB allotment it will kill the script usually with an error. So a PHP script *CANNOT* use more than the max_memory setting defined in the php.ini file.
The other setting that affects PHP scripts is the timeout setting. The default for this setting is 30 seconds. On most installations of PhpGedView 30 seconds should be enough to make it work. Sometimes this number needs to be increased for the import process. If a script tries to go longer than 30 seconds PHP will kill the script.
The values of these settings on your system can be found by going to the Admin page and selecting the Show PHPInfo option. You should also turn on the "Show Execution Stats" gedcom parameter. This parameter will show you how long the PHP script was running and how many databases accesses were required. If you notice that a page takes a very long time to load or if it takes a lot of database queries, then let us know and we will look to see if we can optimize the algorithms used to generate that page to make it faster.
PhpGedView is a processor intensive application. This means that it takes a lot of processing power to run. And if you think about all of the things that it is doing, it is easy to understand this. Think of what it has to do to create the indilist. It first has to search through the list of individuals and find all of those that start with the letter A. It then has to go through all of the A's and group them into surnames like "Adell".
The other things that can affect the overall performance of the server are the operating system, the number of currently active processes, the speed of the processor, the total memory installed on the server, the processor cache, the disk drive speed, and the size of the disk drive cache.
I suspect that the load on your server is extremely high due to other things that are running and that it is on an older operating system that is not as good about sharing the processor.
Anyway, my point is that it is going to be hard to find things in PhpGedView that can be removed that will affect the overall performance of the server.
The best thing you can do is make sure that your timeout setting is at most 30 seconds and that your memory setting is at least 8MB, 16MB would be better.
--John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for all your help.... I have had another crash, and now that the database is on-line again finally, I am looking again at options. I continue to have a question about removing the option to list all names without a separate surname list. I tried to figure out Roland's instructions, and I do appreciate the help, but I guess I am not programing literate enough to figure it out. I am lost... An example I am looking at is the "D" list which has a large number of people, including over 800 with the name Daniel. Without separate surnames, it took over 7.2 seconds to load, and it had 1129 database queries... Is this excessive use of memory? Do I need to pursue this further? This is a great program, and I really do want to keep using it. Thank you for your help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2004-02-16
Hello,
I have sent the modified files to your sourceforge account. Please check them out and see if this helps.
Regards,
Roland
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
How would you disable the option to skip the surname list? I wonder if that would help with my memory problems. It looked like someone used that option right before he left my database early in the day I began having the memory problems before the server was shut down. Few people were on after that. That option can generate a lot of names in my database. I don't allow editing on-line, use four name limits on charts. I have upgraded to the newest version. I noticed that the server seemed to run slow, and when I checked, four of us were on the database. It seemed to speed up when they all left. Any more ideas for things I can do to stop the "memory leak" my service says I have?
Hello,
At the moment it is not possible to disable the skip surname list. To remove the links totally, remove these lines from the famlist.php
if ($show_all=="yes"){
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else if ((!isset($alpha)) || ($alpha=="")) {
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else {
if ($surname_sublist=="yes") print "<br /><a href=\"famlist.php?alpha=$alpha&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"famlist.php?alpha=$alpha&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
print_help_link("skip_sublist_help", "qm");
and from the indilist.php:
if ($show_all=="yes"){
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
else if ((!isset($alpha)) || ($alpha=="")) {
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?show_all=yes&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a><br />\n";
}
else {
if ($surname_sublist=="yes") print "<br /><a href=\"indilist.php?alpha=$alpha&surname_sublist=no\">".$pgv_lang["skip_surnames"]."</a>";
else print "<br /><a href=\"indilist.php?alpha=$alpha&surname_sublist=yes\">".$pgv_lang["show_surnames"]."</a>";
}
print_help_link("skip_sublist_help", "qm");
You will find these lines at the end of both files. Please put in an RFE if you would like to make it an option.
Regards,
Roland
Thanks Roland. This is a bit scary, but I should be able to do it. It would be a good option to have. I have over 800 with one surname, and that can create a rather large page when combined with all the other surnames with that letter. I may have figured out the memory problem... user error, of course. The PHP timeout was set very high so my son could upload the program after he built it on his machine. It was never set lower... Seems like the program works better now. Faster.... I hope this solves my problem....
First I would like to clarify a few things and explain somethings about how PHP works so that you can better understand what might be causing the problems. I will also discuss some of the other things external to PhpGedView that will affect its performance.
The term "memory leak" is not a correct term in this case. Memory leaks are most commonly caused when an object is created in memory and then the variable referencing that object is destroyed without cleaning the object out of memory, thus leaving the object floating around in memory for eternity with nobody claiming it. PHP has garbage collection that detects if an object is not referenced and removes it from memory. So a PHP script cannot have "memory leaks".
PHP is also limited in the amount of memory that it can use. The default setting is 8MB. If PHP ever exceeds this 8MB allotment it will kill the script usually with an error. So a PHP script *CANNOT* use more than the max_memory setting defined in the php.ini file.
The other setting that affects PHP scripts is the timeout setting. The default for this setting is 30 seconds. On most installations of PhpGedView 30 seconds should be enough to make it work. Sometimes this number needs to be increased for the import process. If a script tries to go longer than 30 seconds PHP will kill the script.
The values of these settings on your system can be found by going to the Admin page and selecting the Show PHPInfo option. You should also turn on the "Show Execution Stats" gedcom parameter. This parameter will show you how long the PHP script was running and how many databases accesses were required. If you notice that a page takes a very long time to load or if it takes a lot of database queries, then let us know and we will look to see if we can optimize the algorithms used to generate that page to make it faster.
PhpGedView is a processor intensive application. This means that it takes a lot of processing power to run. And if you think about all of the things that it is doing, it is easy to understand this. Think of what it has to do to create the indilist. It first has to search through the list of individuals and find all of those that start with the letter A. It then has to go through all of the A's and group them into surnames like "Adell".
The other things that can affect the overall performance of the server are the operating system, the number of currently active processes, the speed of the processor, the total memory installed on the server, the processor cache, the disk drive speed, and the size of the disk drive cache.
I suspect that the load on your server is extremely high due to other things that are running and that it is on an older operating system that is not as good about sharing the processor.
Anyway, my point is that it is going to be hard to find things in PhpGedView that can be removed that will affect the overall performance of the server.
The best thing you can do is make sure that your timeout setting is at most 30 seconds and that your memory setting is at least 8MB, 16MB would be better.
--John
Thank you for all your help.... I have had another crash, and now that the database is on-line again finally, I am looking again at options. I continue to have a question about removing the option to list all names without a separate surname list. I tried to figure out Roland's instructions, and I do appreciate the help, but I guess I am not programing literate enough to figure it out. I am lost... An example I am looking at is the "D" list which has a large number of people, including over 800 with the name Daniel. Without separate surnames, it took over 7.2 seconds to load, and it had 1129 database queries... Is this excessive use of memory? Do I need to pursue this further? This is a great program, and I really do want to keep using it. Thank you for your help.
Hello,
I have sent the modified files to your sourceforge account. Please check them out and see if this helps.
Regards,
Roland