http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2013-10-09T06:57:22Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16856
2013-10-09T06:57:22Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/16856/diff?detail_id=22070">diff</a>)</li><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Accepted(着手)</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16863
2013-10-09T08:29:34Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="Revert "improved performance while join member to community (#927)" (fixes #3445) This reverts c..." href="http://redmine.openpne.jp/projects/op3/repository/revisions/aebd70f001af18f67cbcbcf9dbdda0cbac853e1c">aebd70f001af18f67cbcbcf9dbdda0cbac853e1c</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16864
2013-10-09T08:29:34Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p>更新履歴 <a class="changeset" title="add the $free option for Community::joinAllMembers() (fixes #3445)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/b5440f002e0925dbb0a10f659db1e8a85eea5d27">b5440f002e0925dbb0a10f659db1e8a85eea5d27</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16893
2013-10-09T12:45:18Z
Shinichi Urabe
urabe+op3@nuts-choco.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Rejected(差し戻し)</i> に変更</li></ul><p>修正を確認しました。修正自体は問題ないと思います。</p>
<p>管理画面からの特定コミュニティへの全員参加ボタンの動作の処理速度を念のために確認しました。</p>
<ul>
<li>条件
<ul>
<li>1040名のユーザを特定のコミュニティに一括参加</li>
<li>xhprof 0.9.3 で計測</li>
<li>環境 php 5.3.27</li>
</ul></li>
</ul>
<ul>
<li>修正前</li>
</ul>
<table>
<tr>
<th>Total Incl. Wall Time (microsec)</th>
<td> 12,627,795 microsecs</td>
</tr>
<tr>
<th>Total Incl. PeakMemUse (bytes)</th>
<td> 8,040,072 bytes</td>
</tr>
<tr>
<th>Number of Function Calls</th>
<td> 1,936,440</td>
</tr>
</table>
<ul>
<li>修正後</li>
</ul>
<table>
<tr>
<th>Total Incl. Wall Time (microsec)</th>
<td> 10,833,694 microsecs</td>
</tr>
<tr>
<th>Total Incl. PeakMemUse (bytes)</th>
<td> 9,361,328 bytes</td>
</tr>
<tr>
<th>Number of Function Calls</th>
<td> 1,773,829</td>
</tr>
</table>
<a name="差し戻し点"></a>
<h4 >差し戻し点<a href="#差し戻し点" class="wiki-anchor">¶</a></h4>
<p>CommunityMemberPositionTable::getPositionsByMemberIdAndCommunityId() 内の処理で Doctrine_Query::fetchArray() を使うように変更されましたが、hydration mode を Doctrine_Core::HYDRATE_NONE にした方が効果的ですので、そちらを使うようにしてください。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16907
2013-10-10T03:50:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>ステータス</strong> を <i>Rejected(差し戻し)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="more improvements for getPositionsByMemberIdAndCommunityId() method (fixes #3445)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/da55e3f947c741751a9f30de51710b67b9ca70ed">da55e3f947c741751a9f30de51710b67b9ca70ed</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16908
2013-10-10T03:54:38Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul></ul><p><a class="changeset" title="more improvements for getPositionsByMemberIdAndCommunityId() method (fixes #3445)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/da55e3f947c741751a9f30de51710b67b9ca70ed">da55e3f9</a> について:</p>
<p>Doctrine_Core::HYDRATE_NONE を使用した場合に、下記のようにメソッドが実現する処理に対して記述が冗長になることや Doctrine_Query を使用するメリットが見出だせなかったため、Doctrine_Connection で直接 SQL クエリを実行する修正にしました。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">public</span> <span class="keyword">function</span> <span class="function">getPositionsByMemberIdAndCommunityId</span>(<span class="local-variable">$memberId</span>, <span class="local-variable">$communityId</span>)
{
<span class="local-variable">$query</span> = <span class="local-variable">$this</span>->createQuery()
->select(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>)
->where(<span class="string"><span class="delimiter">'</span><span class="content">member_id = ?</span><span class="delimiter">'</span></span>, <span class="local-variable">$memberId</span>)
->andWhere(<span class="string"><span class="delimiter">'</span><span class="content">community_id = ?</span><span class="delimiter">'</span></span>, <span class="local-variable">$communityId</span>)
->setHydrationMode(<span class="constant">Doctrine_Core</span>::<span class="constant">HYDRATE_NONE</span>);
<span class="local-variable">$results</span> = <span class="predefined">array</span>();
<span class="keyword">foreach</span> (<span class="local-variable">$query</span>->execute() <span class="keyword">as</span> <span class="local-variable">$row</span>)
{
<span class="local-variable">$results</span>[] = <span class="local-variable">$row</span>[<span class="integer">0</span>];
}
<span class="local-variable">$query</span>->free();
<span class="keyword">return</span> <span class="local-variable">$results</span>;
}
</span></code></pre>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16909
2013-10-10T04:09:22Z
Shinichi Urabe
urabe+op3@nuts-choco.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Rejected(差し戻し)</i> に変更</li></ul><p>Youichi Kimura は書きました:</p>
<blockquote>
<p><a class="changeset" title="more improvements for getPositionsByMemberIdAndCommunityId() method (fixes #3445)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/da55e3f947c741751a9f30de51710b67b9ca70ed">da55e3f9</a> について:</p>
<p>Doctrine_Core::HYDRATE_NONE を使用した場合に、下記のようにメソッドが実現する処理に対して記述が冗長になることや Doctrine_Query を使用するメリットが見出だせなかったため、Doctrine_Connection で直接 SQL クエリを実行する修正にしました。</p>
<p>[...]</p>
</blockquote>
<p>コメントありがとうございます。</p>
<p>こちらですが、記述は確かに冗長になりますが、OpenPNE のソースで Doctrine::HYDRATE_NONE という文字で検索してもらえれば、チューニングの対応として使っていることが確認できるかと思います。<br />また、一部あるようですが、OpenPNE のソース上で SQL を直書きしている箇所は少ないのと、SQLで書くと event listener が使えなくなりますので、特別な理由がなければ、可能な限り Doctrine_Query を使った方がよいと思います。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16932
2013-10-10T09:06:45Z
Youichi Kimura
kim.upsilon@bucyou.net
<ul><li><strong>ステータス</strong> を <i>Rejected(差し戻し)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="use HYDRATE_NONE mode for getPositionsByMemberIdAndCommunityId query (fixes #3445)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/27853bc54918d78ae098fef478e9e971448f04b1">27853bc54918d78ae098fef478e9e971448f04b1</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=16933
2013-10-10T09:09:07Z
Shinichi Urabe
urabe+op3@nuts-choco.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul><p>レビューOKです</p>
OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445?journal_id=22110
2017-03-24T10:48:41Z
kaoru n
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Won't fix(対応せず)</i> に変更</li><li><strong>対象バージョン</strong> を <i>OpenPNE 3.9.0-old</i> から <i>OpenPNE 3.9.0</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>0</i> に変更</li></ul><p>OpenPNE 3.8.9 にて対応済みであったため、対応せずとします。</p>