Web应用程序在前端层和后端层中通常会遇到哪些常见且值得注意的性能问题/瓶颈?
我在数据库中的含义示例是没有您要查询的索引。这会减慢查询速度。在前端,使用JavaScript可能会让你的应用程序看起来很慢。
帮助解决此类问题的一般经验法则是什么?什么是好的待办事项?
谢谢, 亚历
答案 0 :(得分:3)
对于前端,您可以关注众所周知的guidelines/rules,并且有一些很棒的工具,例如YSlow,可以帮助您查明瓶颈。
对于后端,正如您所指出的那样,必须有效地使用索引。其他优化通常涉及缓存,以及基本的东西,比如避免在循环内做一次可以完成的事情。我相信这里的人会有建议,但要记住“过早优化是万恶之源!” : - )
答案 1 :(得分:3)
在前端:
- 将所有资产(css文件,图像,静态内容)推送到CDN。 Edgecast相当不错且价格合理。
- 当你只需要一些功能时,不要使用加载整个javascript框架。只加载所需的东西。
在后端
-memcache来自所有数据库调用的结果,使用sql查询的哈希作为键名,结果集作为值
- 确保你没有让你的数据库表真的“宽” - 大量的列和列类型,如'text'和'blob'
答案 2 :(得分:2)
Millhouse正在努力。我还可以补充一下:
答案 3 :(得分:2)
使用基于CQRS的架构。 CQRS代表Command / Query Responsability Segregation;它基本上意味着你有不同的代码(服务)来从数据库读取和写入数据库。可扩展性的一个好习惯是使用单独的DB进行读写(如果您阅读有关CQRS的更多内容,它确实有意义),并且您可以通过在多个服务器上运行副本来扩展读取数据库。
CQRS不仅从可扩展性的角度来看是有趣的,而且从代码维护和清晰度的角度来看也是如此。不过,确实需要花一些精力来了解CQRS并理解它。
查看以下链接:
http://www.slideshare.net/skillsmatter/ddd-exchange-2010-udi-dahan-on-architectural-innovation-cqrs
http://www.slideshare.net/pjvdsande/rethink-your-architecture-with-cqrs