1. 程式人生 > >一個配置表優化的想法

一個配置表優化的想法

解決方法 方法 c++ 人事 存儲 發現 tro 如果 需要

今天下班在班車上想了一個關於配置表存儲的小優化,起因是早上的時候發現了一個bug,這個bug是由於在運行時動態更改了一個列表配置導致的。

其實關於這種運行時“偷偷”改配置的問題我之前也有考慮過,這種應該是一不小心就會寫出的,這不終於都出了一個。

至於如何預防這種問題,我認為在python裏面似乎也沒有什麽好的解決方法,因為它不像c++有const語義,但有一個稍盡人事的預防措施就是把列表型的配置讀成元組(tuple)。而由此衍生出的一個想法便是:把配置表中所有的列表型配置都讀成共享的元組,即只要是其內容一致的那麽內存中就只會存一份,類似於string intern

在將這個想法付諸實踐之前,有一些問題是需要搞清楚的。因為如果我想要做的,python都幫我做的七七八八了,那我就不需要在此花費無用的精力了。因此首要問題是,python的元組是否有共享機制?以及其對何種元組是會共享的?

顯然不可能是所有的元組都使用共享策略,但我知道空的元組是會被共享的。

一個配置表優化的想法