Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
QUESTION Max number of pages?
#1
What is the maximum number of pages a website can have with GetSimple before it starts to have problems?
Reply
#2
Quote:What is the maximum number of pages a website can have with GetSimple before it starts to have problems?

For this question I made a 1000 pages test case
check it out here:

http://gs1000.showme.zone/
Reply
#3
(2021-06-30, 18:00:29)Felix Wrote:
Quote:What is the maximum number of pages a website can have with GetSimple before it starts to have problems?

For this question I made a 1000 pages test case
check it out here:

http://gs1000.showme.zone/

Thanks!
Reply
#4
I'm sure this depends entirely on your Server setup and how long the PHP process is allowed to run before it gets killed by the hosts watchdog as not responding. 

I'm running some tests on huge number of pages in GetSimple. 
Server is Shared VPS with SSD disks. 

40,000 pages was too much .. lol  server went to 504 service not available

at less than 21000 pages it works, page serving response is actually pretty fast, less than a second for a known page address.

But the admin panel ,, woof ,, over a minute to complete the load. 

Some things that could maybe make things better is being able to break the Pages directory into sub directorys based on parent page or something. 

and making the admin side only reload / inventory the pages when you go into that sub directory.

At this point I may explore other CMS options or make it work local and then export to a flat html site. 

I would not that the only AdminPanel page that is super slow is the Pages Tab. 

( I really do LOVE Get-Simple for it's simple development architecture.)
Reply
#5
at dryland404

Quote:40,000 pages was too much .. lol  server went to 504 service not available
at less than 21000 pages it works, page serving response is actually pretty fast,
less than a second for a known page address. But the admin panel ,, woof ,,
over a minute to complete the load.

40000 pages ... really ?

Nobody will take you serious using an xml database for that amount of pages.
Do a reality check and stay in tune with the real world out there.

There is a difference between a database where xml is used as data transfer,
and a database where mysql is used as data storage management !

And above a certain amount of pages, even the use of mysql will not be enough,
you also need a backend that can handle the administration.

==========================================================

The main reason why the Get-Simple CMS delivers such fast page load speeds is because
it uses a xml database and not a mysql database.
Under a certain amount of pages, xml performs much faster than mysql.
But of course, above a certain amount of pages,
xml will start to slow down because of read latency.
XML is more a data transfer technology and not a data storage technology.
MySQL performs much better for a large application or large dataset.

1)
The GS xml database and backend handles 1000 pages very fast
as I showed in my 1000 pages test case.

2)
When was the last time you had a project for a client with more than 1000 pages ?

3)
Living and working in the real world
I learned when to say Yes, and when to say No to a project. Personally I say No to a Client
with a project more than hundred pages, for good reasons.

F.
Reply
#6
(2021-10-27, 12:55:36)Felix Wrote: at dryland404

Quote:40,000 pages was too much .. lol  server went to 504 service not available
at less than 21000 pages it works, page serving response is actually pretty fast,
less than a second for a known page address. But the admin panel ,, woof ,,
over a minute to complete the load.

40000 pages ... really ?

I actually don't NEED 40,000 pages . but it would be incredibly helpful if I could figure out how to make the output of a component PHP be returned as the page with a slug unique to that data. for instance /data/39999 where data is the page and 39999 is the content returned from the component in the page. for the purposes of search engines showing the result as a unique page. 
39999 is the key to the data to be returned for that page.
Reply
#7
Quote:how to make the output of a component PHP be returned as the page with a slug unique to that data.

What you are looking for you can accomplish when you approach it with the GS api as "everything is a page"
Use it as parent pages, child pages, placeholder pages, configuration pages, variable pages, etc. etc.
Reply
#8
(2021-10-28, 04:26:51)Felix Wrote:
Quote:how to make the output of a component PHP be returned as the page with a slug unique to that data.

What you are looking for you can accomplish when you approach it with the GS api as "everything is a page"
Use it as parent pages, child pages, placeholder pages, configuration pages, variable pages, etc. etc.

I'm not sure if you left something off this ? Are you referring to ItemManager 2.0 ? 
I'm checking into that in a fresh install .. 
I was unable to find a documentation link for GS API . [url=http://get-simple.info/forums/showthread.php?tid=7293&highlight=everything+is+a+page][/url]

Could you point me in the direction of the discussion or documentation please ?
Reply
#9
There is no API in GetSimple lol, not object-oriented, just a bunch of global functions.

Well, we should be really careful when we say that with a certain number of pages, an XML application is faster than one that uses relational database. There are just too many factors to take into consideration. I mean, you can write a database-based application that is slower than one that reads the same amount of data from an XML file, or you can write a flat-file application that is much slower than the one that uses a database.

The number of pages plays only a subordinate role. Much more important is the amount of data and the data structure to be handled. A page can have different amount of bytes, the XML file can also have very nested complex structure. For example, a page may contain only a string "Hello world", another may contain huge text the length of a thick book etc. So, in general, to say that above a certain number of pages the application is no longer efficient is wrong. – It depends on the structure of the data, server configuration e.g. caching type, database connection pooling, quality of the code base and of course the query involved.

Yeah, if an XML file is small and the data structure is simple, and you just do a simple parse request, the script might be faster, but only slightly and only maybe. So little faster that it's hardly worth mentioning, I guarantee you won't notice. The entire JavaScript, CSS loading excess in the frontend is definitely a bigger bottleneck. Besides, a next slightly more complex MySQL query (for example to map a navigation structure with a counting of pages), makes everything bet again. Furthermore, the loading speed of the website is highly dependent on the concurrent requests (number of visitors). Again, this only applies if no cache engine is used - which no modern website should do. If the same cache engine is used in an XML and a database application, both can render the same content at the same speed. As far as I can remember (maybe I'm wrong), GetSimple caches its content in the frontend, but not in the backend when rendering the page list, which is why you probably notice the difference in loading speed.

Remember though, performance alone should not be a reason for choosing XML over the relational database, this is ridiculous.
Reply
#10
Hi Bigin,

Thanks for stepping in on this, your contribution to GS is highly appreciated by many of us,
especially the ItemManager2 plugin and it's successor ItemManager3

Quote:I guarantee you won't notice.

So why is it then that I notice a huge difference in speed between the Get-Simple cms
and all the others that I tried out ?

You can see here a list of all the flat file based cms systems that I evaluated and tried out:

http://get-simple.info/forums/showthread...6#pid72046

The Get-Simple cms is very noticeable (observable) a lot faster than all the others

For MySQL based cms systems that I tried out, see further below

----------------------------------------------------------------------------------------------

Another approach in a lesser technical way (empirical approach supported by the evidence of the senses)

You can approach 1) "the cms speed" and 2) "ease of use" in a practical way
by simply trying out all existing cms systems out there ... to find out
which cms is the fastest and the easiest cms, for a certain group of users.

I must add here 3) "the experience and coding level of who is going to use the cms"
=> users with only basic experience in php, html, css, javascript,

and 4) Making websites in a limited range of 10 or maybe 50 pages.

and 5) I am referring here to cms systems that are php based without things like:
twig - yaml - laravel - symphony - node.js - vue.js - etc. etc.

Because an experienced coder using things like node.js is working on a different
level and architecture with a cms and makes my above mentioned approach not valid.

----------------------------------------------------------------------------------------

So, with the above I have set, so to speak, the domain where in I tried out all existing cms systems out there,

And it so happens to be that the Get-Simple cms is the fastest and the easiest of them all.

I can't say for sure why that is, maybe it is because of it's global functions or the use of
it's xml database ... or maybe both ... but it simply is the fastest and the easiest cms
for the stated domain mentioned above.

----------------------------------------------------------------------------------------

And lets not forget that The Get-Simple cms has attracted experienced coders who made fantastic plugins
that makes the Get-Simple very useful for many situations !

Besides the flat file based cms systems that I have tried out, the last couple of weeks
I have also tried out MySQL based cms systems:

WordPress - Drupal - Backdrop cms - Joomla - Subrion

The Backdrop cms is a special Drupal fork because many coders and users claim that
with Drupal 8 (a complete failure) and now with version 9, Drupal is moving away from
it's historic pool of coders and users (going the corporate direction with the bigger money)

The trend they follow is - twig and yaml - where for example you have to follow strict class structures or hooks
which takes a long learning curve to understand for people with only basic coding experience.
Their backends are trending into a style for office administrators but it makes the cms only slower.

So why would a coder or experienced user choose for such a backend if the client doesn't
want to edit/manage his website him self in the first place ? Most of them only want to know
how to change images and some text and for that a simple backend keeps it easy and fast.

Even with the help of Gantry5 for Joomla and Grav it is still a lot of fuzz
to build a website with it. Same story when you use Nicepage or Quix.
Not to speak of all the bloated code that comes with them.

But of course, WordPress - Drupal - Joomla - etc. are there for a reason.
But that is beyond the scope of this post.
----------------------------------------------------------------------------------------

Ok so to finalize here, to build websites where I have - total - design control
with an efficient workflow and to be productive
what works best for me:

I choose the Get-Simple cms for smaller projects
and Processwire for bigger projects.

---------------------------------------------------------------------------------

It would be nice to hear from others here in the forum what they use for their projects
or the workflow they follow.

F.
Reply
#11
(2021-10-31, 21:14:50)Felix Wrote: So why is it then that I notice a huge difference in speed between the Get-Simple cms
and all the others that I tried out ?

Hi,

that's simple: because you didn't have enough knowledge on how to work with it properly.

You can't just download a system, fiddle with it for two days, mess around with it, and then claim it's slow or bad. Again, to test something well, you need real background knowledge, first in the programming language it is written in, and second in its system core.
Reply
#12
Smile 
Hi Bigin
Thanks for your reply

Quote:that's simple: because you didn't have enough knowledge on how to work with it properly.

I already cleared that up with the "user domain" I defined in the beginning of my post.

Quote:You can't just download a system, fiddle with it for two days, mess around with it, and then claim it's slow or bad.

Yes you can test a cms system in 2 obvious ways:

1) the way it was made to work - it's code base
2) the way it was made to use - it's api and backend

And then compare that to other cms systems and see:

a) which one is terribly coded
b) which one has a nightmare backend
c) which one performs faster

Quote:Again, to test something well, you need real background knowledge, first in the programming language it is written in, and second in its system core.

A cms system is not made for the coder ... a cms system is made for the end user ...
at least the ones we discuss here
I know it is often difficult for an experienced coder, but try to see it from an end user view ...

End users will never work with ... and neither are interested in the programming language it is written in,
nor in its system core ...

F.
Reply
#13
(2021-11-01, 16:04:07)Felix Wrote: A cms system is not made for the coder ... a cms system is made for the end user ...

I believe that it is wrong. In my opinion a self-hosted CMS is not a final product, but a tool for creating the final products like websites.
So it is up to the developers to work with it to create high-quality products like websites/themes etc for the end user. Since the end user is not able to judge the technical quality of the CMS, he should not make any judgments about the CMS itself, but to the website implemented for him by a developer.

E.g. instead of telling:
"My Blabla-CMS is slow ..."
tell:
"My website developed by John Doe is very slow..."
Reply
#14
The main issue is the page cache here, as it is not a incremental cache, its one large file and all pages have to be processed, this is well covered elsewhere , probably on github, I was working on some solutions to this but never got around to optimizing it or moving stuff off to a secondary cache or memcache
NEW: SA Admin Toolbar Plugin | View All My Plugins
- Shawn A aka Tablatronix
Reply
#15
Yes, some kind of page-based markup cache for the frontend would be good and for the backend (page list) some kind of indexing also page-based with pagination.
Reply




Users browsing this thread: 1 Guest(s)