问题列表 - 第33924页

iPhone4上的CoreGraphics比3G/3GS慢

我有一张用CoreGraphics绘制的图表.

此图表可以水平滚动,并在滚动时绘制.

问题是在3G/3GS上滚动的速度和性能都很好,但在iPhone 4上的速度比预期慢.

我想这是一个与iPhone 4更高分辨率相关的问题.这是正确的吗?

如何提高iPhone 4的性能?框架是否自动转换为在iPhone 4分辨率上绘制,还是我的工作?

非常感谢你.

iphone core-graphics iphone-4

3
推荐指数
1
解决办法
692
查看次数

在C++ STL中交织/解交织3个向量

我正在尝试将三个信号波形组合成一个交错的波形.我需要知道在C++ STL中实现它的最佳方法.更好的解决方案将使用尽可能多的C++ STL样式,避免冗余代码等.是否有一些STL"元组"类型类可以为我做这个?我始终需要连续存储以便与其他代码向后兼容(因此,向量).最好的解决方案是正确且易于理解的.空间和速度并不像正确性易于理解那样重要.

输出波形必须按如下顺序排序:来自第一个通道的第一个样本,来自第二个通道的第一个样本,来自第三个通道的第一个样本,然后继续来自每个通道的第二个样本,并对所有样本重复.我知道所有三个输入波形都具有相同数量的样本.

在Matlab中,我会这样做:

function outputWaveform=Interleave3(a, b, c)
outputWaveform=zeros([1 3*length(a)]);
outputWaveform(1:3:end)=a(:);
outputWaveform(2:3:end)=b(:);
outputWaveform(3:3:end)=c(:);

这是我的第一次C++ STL尝试:

typedef vector<double>  dVector;
typedef vector<double>::iterator  dVectorIT;
dVector Interleave3(dVector a, dVector b, dVector c)
{
    dVector result(0, 3*a.size());
    dVectorIT aIT=a.begin(), bIT=b.begin(), cIT=c.begin(), rIT=result.begin();
    for(; aIT != a.end(); ++aIT, ++bIT, ++cIT)
    {
        *rIT++=*aIT;
        *rIT++=*bIT;
        *rIT++=*cIT;
    }
    return  result;
}

它有效,但是有更好的方法吗?我希望有一些聪明的方法可以用transform()在一行中完成它.你可以将b附加到a,然后将c附加到a,然后将临时"a1a2a3 ...- b1b2b3 ...-c1c2c3 ..."向量转换为"a1b1c1a2b2c2a3b3c3 ..."?

额外问题:我还需要逆操作(将3*N个样本的输出波形分成3个N个样本的矢量).Matlab解决方案非常简单:

function [a, b, c]=Deinterleave3(outputWaveform)
a=outputWaveform(1:3:end);
b=outputWaveform(2:3:end);
c=outputWaveform(3:3:end);

C++ STL似乎相当尴尬,我敢打赌,有一个更好的方法来做到这一点:

typedef vector<double …

c++ stl signal-processing

2
推荐指数
1
解决办法
2080
查看次数

CollectionViewSource仅在第一次绑定到源时进行排序

我正在使用绑定到CollectionViewSource(播放器)的DataGrid ,它本身绑定到ListBox(级别)的当前所选项目,每个项目包含要在DataGrid中排序/显示的集合:

<ListBox Name="lstLevel"
         DisplayMemberPath="Name" 
         IsSynchronizedWithCurrentItem="True" />
Run Code Online (Sandbox Code Playgroud)

...

<!-- DataGrid source, as a CollectionViewSource to allow for sorting and/or filtering -->
<CollectionViewSource x:Key="Players" 
                      Source="{Binding ElementName=lstLevel, 
                                       Path=SelectedItem.Players}">
  <CollectionViewSource.SortDescriptions>
    <scm:SortDescription PropertyName="Name" />
  </CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Run Code Online (Sandbox Code Playgroud)

...

  <DataGrid Name="lstPlayers" AutoGenerateColumns="False" 
            CanUserSortColumns="False"
            ItemsSource="{Binding Source={StaticResource Players}}">
    <DataGrid.Columns>
      <DataGridTextColumn Header="Name"
                          Binding="{Binding Path=Name, Mode=TwoWay}"
                          Width="*" />
      <DataGridTextColumn Header="Age"
                          Binding="{Binding Path=Age, Mode=TwoWay}"
                          Width="80">
      </DataGridTextColumn>
    </DataGrid.Columns>
  </DataGrid>
Run Code Online (Sandbox Code Playgroud)

(整个C#代码在这里,XAML代码在这里,整个测试项目在这里 - 除了DataGrid我已经为玩家添加了一个简单的ListBox,以确保它不是DataGrid问题)

问题是玩家在第一次显示时进行排序,但是一旦我从ListBox中选择另一个级别,他们就不再排序了.此外,在第一次显示玩家时修改名称将根据更改对其进行排序,但是一旦更改了级别,就不再对其进行排序.

所以看起来改变CollectionViewSource的源代码会以某种方式破坏排序功能,但我不知道为什么,也不知道如何修复它.有谁知道我做错了什么?

(我用过滤器进行了测试,但是那个按预期工作了)

该框架是.NET 4.

wpf binding collectionviewsource

19
推荐指数
3
解决办法
1万
查看次数

bitset超过32位?

我需要使用超过32位的位标志(现在确切地说是33位).我试过,发现std :: bitset不能处理超过32位(ulong).我是否必须使用矢量或有一种方法使bitset工作?

我在这个项目中仅限于c ++ 98,所以我不能使用boost.

谢谢.

编辑:

我想做这样的事情:

const uint64    kBigNumber = 1LL << 33;
std::bitset<33> myBitSet;
...
switch(myBitSet) {
    case kBigNumber:
    // do something
    ...
}
Run Code Online (Sandbox Code Playgroud)

c++ stl bitset

4
推荐指数
2
解决办法
5099
查看次数

处理此问题的最佳方法是:在完全下载文件之前,通过PHP +大量下载来自客户端=脚本超时的慢速连接

我的客户想要一种向用户提供下载的方法,但只有在他们填写注册表(基本上是姓名和电子邮件)之后.通过可下载内容的链接向用户发送电子邮件.链接包含对包,文件和用户唯一的注册哈希,它们实际上转到记录每次下载的PHP页面,并通过将文件写入stdout(以及相应的头文件)将文件推出.此解决方案具有固有的缺陷,但这就是他们想要这样做的方式.需要说的是,我努力推动他们1.)限制可下载文件的大小和2.)考虑使用CDN(他们有国际客户,但托管在美国在2个镜像服务器和使用粘性IP的负载均衡器上.无论如何,它"适合我" 但他们的一些国际客户的连接速度很慢(d/l速率约为60kB /秒),其中一些文件相当大(150 MB).由于这是一个提供这些文件的PHP脚本,因此它受脚本超时设置的约束.起初我把它设置为300秒(5分钟),但这对于一些测试版用户来说还不够.所以我尝试根据文件大小除以100kb /秒连接计算脚本超时,但其中一些用户甚至比这慢.

现在客户端想要提升超时值.如果脚本以某种方式进入无限循环,我不想一起删除超时.我也不想为了一些全能最低公分母连接速率而任意推出超时(大多数人的下载速度比100kb /秒快得多).而且我也希望能够在某个时候告诉客户"看,这些文件太大而无法以这种方式处理.您正在通过这些40多分钟的连接影响网站其余部分的性能.我们要么需要重新考虑如何交付或使用更小的文件."

我有几个解决方案,如下:

  1. CDN - 将文件移动到CDN服务,如亚马逊或谷歌.我们仍然可以通过PHP文件记录下载尝试,但随后将浏览器重定向到真实文件.这样做的一个缺点是,一旦用户拥有URL(可以通过观察HTTP头部收集),用户可以绕过脚本并直接从CDN下载.这不错,但不是很理想.
  2. 展开服务器场 - 将服务器场从2个服务器场扩展到4个以上,并从负载平衡器中删除粘性IP规则.缺点:这些是Windows服务器,因此价格昂贵.他们没有理由不能成为Linux盒子,但是设置所有新盒子可能需要比客户端允许的时间更长的时间.
  3. 设置2个新服务器严格用于提供这些下载 - 基本上与#2相同的优点和缺点,除了我们至少可以隔离网络的其余部分(并微调新服务器)这个特定的过程.我们也很容易制作这些Linux盒子.
  4. 检测用户连接速率 - 我想到了一种方法,通过在下载登录页面上使用AJAX来检测用户的当前速度,以计​​算下载具有已知文件大小的静态文件所需的时间,然后将该信息发送到服务器并根据该信息计算超时.它并不理想,但它比估计连接速度太高或太低都要好.我不确定如何将速度信息返回到服务器,因为我们当前使用从服务器发送的重定向标头.

#1-3的机会将被拒绝或至少被推迟.4这是一个很好的方法来解决这个问题,还是有其他我没有考虑过的问题?

(随意挑战原始解决方案.)

php connection timeout tracking download

11
推荐指数
1
解决办法
3709
查看次数

内核内存在Windows操作系统中包含什么?

众所周知,在32位Windows操作系统下运行的程序只有2GB的可用虚拟内存.另外,已知其他2GB被保留为内核空间.但是那个内核空间究竟是什么呢?

我可以理解内核本身所需的保留,但为什么进程的VAS中的内核空间呢?谢谢.

windows kernel virtual-memory

1
推荐指数
1
解决办法
2132
查看次数

UITableView"向下滚动以更新"

实现"向下滚动更新"功能的最简单方法是在Facebook"新闻提要"中,当您从顶部向下滚动新闻时,您会看到更新指示符并相应地更新新闻.

提前致谢

iphone uitableview ios4

6
推荐指数
1
解决办法
2万
查看次数

如何禁止一个ActionScript文件的警告?

我有一个ActionScript 3源文件(.as),它有数百个无类型变量.这个文件工作得很好虽然它为每个无类型的变量输出一个警告,这个变量让我在IDE中阻塞了错误面板的大约800个警告.

虽然警告在我的其他源文件中很有用,但我想禁止对这个.as文件发出警告,因为我没有心情为它们指定数据类型.

这可能吗?

我在Windows 7上使用FlashDevelop 3,
并使用Flex 4 SDK编译AS3 AIR项目.

apache-flex flash flashdevelop actionscript-3 compiler-warnings

5
推荐指数
1
解决办法
2309
查看次数

如何在点击事件上调用jQuery AJAX?

我做了一个jQuery模型.

我试图在该模型中使用AJAX填充数据.

我得到一个id并使用我想用AJAX填充数据.

如何在点击事件上调用AJAX?

打开或加载模型时是否还有其他事件?

该模型只是div的显示和隐藏.

jquery jquery-ui

6
推荐指数
1
解决办法
5万
查看次数

如何在不使用属性"value"的情况下为"input type = text"定义默认值?

我需要为input type = text字段提供一个默认值,如下所示:

<input type="text" size="32" value="" name="fee" />
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以提供此默认值:

<input type="text" size="32" value="1000" name="fee" />
Run Code Online (Sandbox Code Playgroud)

这是一个问题:我是否可以在不使用属性'value'的情况下设置默认值?

据我所知,如果我手动设置输入值1000,然后通过Web浏览器查看源,则该值仍为空.所以我认为可能有一种方法可供我使用.

谢谢

html

33
推荐指数
5
解决办法
16万
查看次数