I have two comments:
1) Do you think that MenuComponent could cause some problem? Remove MenuComponet class and objects, and instead make some system.out.print when you want to create and add child to this object. May be MenuComponent is slow.
2) Reading all folders and subfolders at once and move them to presentation layer could cause problem not only on server but also in the client. If the menu is displayed by javascripts, then the client should manage a huge array which contain name and other attributes of the menu. We had this problem in a project once and the performace problem was at the client. The client took 1-2 minutes to read all Javascript stuff. It is a good idea to read each folder content when user clicks on them. Please have a look at www.opencms.org. This is a content management tool that shows lots of files and folder. You can get some idea from it. May be Ajax framework can help you with this.