影響C 程式效率的原因有哪些?

時間 2021-06-04 03:38:38

1樓:龍小愛程式設計

1、多執行緒會提高程式處理效率,但是太多也會搶奪資源,導致等待。你的專案應該不至於

2、vector使用不當確實會導致處理效能下降,不知道你是怎麼用的?最新的C++11可以使用emplace_back減少記憶體移動次數,不妨使用這個。

3、粗判斷確實會減少運算次數但是提公升效果根據程式時間計算量而定,本身不大的話應該沒啥效果。

4、盡量使用最基本的資料型別,減少string等類物件的使用也會對效能有提公升。

因素有很多很多……實際情況實際分析吧

2樓:

這就要你對演算法做優化了啊。你光做並行處理只是減少了等待的時間,工作量可是一點都沒減少。

如果對所有的幾何體都一一去判斷,那就是 遍判斷,規模一大肯定是接受不了的。而且,那麼多個散布在各個地方的集合體,相鄰的都是少數,離得遠的才是多數,所以對很多對的判斷肯定都做的是無用功。

於是就可以採取分割槽的方法,降低所需判斷的對數。

比如將整個空間均勻劃分為 M * N 的網格。根據每個集合體當前的位置,確定它在哪個網格裡。那這樣判斷接觸時,是不是就只用判定和它處在同一網格或者是相鄰的八個網格裡的集合體,就可以啦?

是不是就把大量的離得遠的根本不可能接觸的集合體都排除啦?

如上圖所示,要判斷和白色區中的紅色點是否有碰撞,是不是只需要在白色區和深藍色區中篩選,就可以啦?那遠的淺藍色區域內的大量無效的點,就都可以排除了。

再有,乙個快速篩選方面的技巧:盡量避免浮點運算,能在整型範圍內處理的就用整型處理。

我們簡化處理一下,假設你的碰撞條件是幾何距離 時認為是產生碰撞了。但是我們知道,平方和再開根是開銷非常大的運算,而能達到這麼近距離的幾何體對的數量實在是太少了。於是對每一對都計算一遍幾何距離就是非常奢侈的做法。

所以我們可以用橫向距離 和縱向距離 是否 先篩選一遍。能達到這個範圍的再去算它們的幾何距離是否小於等於 d,這就又能再榨取出一些效能了。

專公升本複習效率低的原因有哪些?

基本上找到什麼題就做什麼題,不分層次,不歸類行。多數的人都認為,只要刻苦學習就會有一定的收穫,其實不是,學習要講究方式方法,並不是以為的學習就一定能學的很好,比如說我們在學習的很疲勞的狀態下,思路可能就會變得不清晰,學習效果會很差,那面對這種情況,我們在學習的過程中就會覺得很乏味,沒有什麼學習的興趣...

影響性取向的原因有哪些?

你問的問題現在學術界還沒有定論。只有幾個研究研究出來男同性戀是有基因基礎的。目前學術界的共識是性取向是尤顯天基因 懷孕時母親的激素 後天環境綜合影響而成的。至於性取向可不可改變,有兩種理論。第一種 性取向是乙個連續光譜,從鐵直到鐵彎。絕大部分人都分布在中間,既不是絕對的同性戀也不是絕對的異性戀。至於...

公立醫院看病效率低的原因有哪些?有哪些改善的辦法?

看某些回答氣死個人了,就是覺得慢,講講為什麼拍ct看病需要那麼長時間,這時候應該是醫生們出來解釋一下,自己每天多少病人每天有什麼事如何如何的,透明一下讓著急的病人放心。結果上面回答一口乙個國外更慢如何如何的? 萬俊良 中國醫療資源不夠,所以要合理分配醫療資源。除非很著急的情況,其他的都要排隊來。你要...