当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点
回复内容:
当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
一直get不到点
一开始架构肯定要搭建好啊,不然后面只能对硬件设施进行优化,
回答问题麻烦看清楚问题
首先当然是编码人员自身的意识-编写高质量的代码
在不影响进度的条件下可以优化代码逻辑。
然后先保证开发完成,跑起来再分析哪些是瓶颈,进行优化。
因为可能你现在绞尽脑汁优化的点占整体瓶颈的1%,优化从重点着手效率才最高。
最后,每一阶段的优化重点可能不一样,也要更具需求来分析解决瓶颈。因为你现在优化的点,可能在这一阶段根本用不到。
站在数据库角度来说:
一开始就知道是并发很大,那就需要从设计表结构开始,避开一些并发带来的设计,比如拆分一部分不常用字段到另外的表等,大架构基本方向对就可以。
至于其他的,就需要看具体需求,现在的设计基本是先完成功能,后优化!
我举个简单的例子,你过年回家,开始是想骑自行车回家,然后一直在思考用什么样的自行车,怎么骑才能快的。。。可是大家回家都是坐飞机回去的,所以,要看你优化的有没有意义,最后你都不采用现有方案,优化再好也没用。。。框架的时候就应该想好优化的问题。。。一点个人见解。。
题主的问题是当前页面遇到问题就立刻优化吗还是等到(模块/项目)接近完成了才开始优化?
我的答案是:遇到问题,解决问题
从重构开始。
你的问题其实算不上一个问题,就是想问马上改还是稍后再改,对吗?应对问题你肯定要有个方案,然后评估优先级,然后实施就是了,从这个角度来说没有任何问题是发现后马上改的。但是怎么评估优先级就要看具体情况了。
简单说:
高并发仅在特定应用上发生,影响范围被限制在某个模块内,不是核心功能,且不对其它功能产生直接影响,这个最后处理也没问题。
高并发仅在特定应用上发生,影响范围被限制在某个模块内,但是是核心功能,也对其它功能产生直接影响,方便的时候解决就行了。
高并发在2个或以上应用上发生,影响不限于某个模块内,尽快安排解决。
这也就是一般的情况,实际开发的时候你还要综合考虑外部压力之类的问题(比如客户死活让你下周上线)。
优化应从设计逻辑开始.
业务逻辑思路清晰就最好了,尤其是开始时候就和程序员从高并发角度做准备,整体可以给业务带来比较小的压力,或者功能比较好拆分,都能在项目开始阶段把问题解决掉.
当然这是最理想状态,通常做不到.
那么就要根据已有业务逻辑,尽可能将业务规划为容易拆分的模块,理想状况是,将来哪里成为瓶颈,哪里直接加台机器装上对应逻辑就解决.
这也是理想状态,没人先知先觉,但有经验的架构师可以预先处理掉大部分问题.
接着就是根据实际情况解决问题,这个就要看,实际业务上,究竟哪里是瓶颈.
一般说来,出问题的就几种情况:
1.程序员写的东西本身不过关,我见过有人在业务里递归查数据库的,还不限制层数,在本地跑的好好的,一上线,cpu爆表直接挂掉.
2.访问过多,这也可能是静态文件太多引起的,或者带宽被占满了.那么就需要考虑CDN或者把一些固定文件资源分配到专门服务器上面去.
3.数据库顶不住了.这个也非常常见,一般就是单表数据量太大引起的. 或者还不算大但查询很慢这类问题一般是索引不足或者过度索引造成的.处理完还要看看是否可以优化数据库配置,运维有时候只负责数据库跑起来,其余优化配置全不管.接着还不行就考虑加缓存,增加一层或者干脆换成 Nosql数据库,但这个就需要看具体业务逻辑才可以.
我遇到的问题,一般在这几个层面都可以解决的掉了.所以更高深的还在学习中.
抛开具体业务逻辑也只能说些比较空泛的了,所有抛开业务逻辑的优化,并发都是伪命题.

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)