小编gju*_*anm的帖子

为什么创建一个从0到log(len(list),2)的范围这么慢?

我不知道为什么会发生这种情况.我在搞乱一些列表,我需要一个for从0到log(n, 2)n 的循环,其中n是列表的长度.但是代码速度非常慢,所以经过一番研究后我发现问题出现在范围生成中.演示示例代码:

n = len([1,2,3,4,5,6,7,8])
k = 8
timeit('range(log(n, 2))', number=2, repeat=3) # Test 1
timeit('range(log(k, 2))', number=2, repeat=3) # Test 2
Run Code Online (Sandbox Code Playgroud)

输出

2 loops, best of 3: 2.2 s per loop
2 loops, best of 3: 3.46 µs per loop
Run Code Online (Sandbox Code Playgroud)

测试的数量很少(我不希望它运行超过10分钟),但它已经显示range(log(n, 2))比仅使用整数的对数的对应物慢几个数量级.这真的很令人惊讶,我不知道为什么会发生这种情况.也许是我的电脑上的问题,可能是Sage问题或Python错误(我没有在Python上尝试相同).

使用xrangerange不是帮助.此外,如果你得到数字.n(),测试1以2的相同速度运行.

有人知道会发生什么吗?谢谢!

python performance sage

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

如何在WP8中获取LongListSelector的VerticalOffset

在WP7中,LongListSelector有一个底层的ScrollViewer,我可以从中恢复列表的垂直偏移量.但是在Windows Phone 8中,没有底层的ScrollViewer,也没有任何类似的类为我提供了VerticalOffset属性.

我一直在寻找,没有找到任何东西.我可以使用一个函数来解决列表中的第一个可见元素,但我也没有找到任何东西.ItemRealized事件对此没有用,因为它没有给出在视口顶部显示的确切项目.

windows-phone-7 longlistselector windows-phone-8

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

使用TweetSharp/Hammock将媒体上传到Twitpic时,"Twitter拒绝了"

我正在尝试使用WP7应用程序中的TweetSharp和Hammock库将图片上传到Twitpic.上传照片的代码是:

// Clients.srv is a TweetSharp TwitterClient
RestRequest req = Clients.srv.PrepareEchoRequest();
RestClient client = new RestClient { Authority = "http://api.twitpic.com/", VersionPath = "2" };

req.AddFile("media", e.OriginalFileName, e.ChosenPhoto);
req.AddField("key", "hidden");
req.AddField("message", Tweet.Text);
req.Path = "upload.xml";
req.Method = Hammock.Web.WebMethod.Post; 

client.BeginRequest(req, (RestCallback) uploadCompleted);
Run Code Online (Sandbox Code Playgroud)

对代码的一些解释:这来自对photoPickerTask的调用,e是包含照片名称和文件(IO.Stream对象)的事件参数.所有这些都经过验证可行.

问题是Twitpic的响应始终是"无法验证您:Twitter拒绝的标题".TwitterClient工作,OAuth令牌都可以.API密钥是正确的.我不知道错误是来自我的代码,来自TweetSharp PrepareEchoRequest()函数还是来自Twitpic.谁能给我一个线索?

c# oauth tweetsharp twitpic windows-phone-7

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

更新到Azure SDK 2.0后无法加载"Microsoft.WindowsAzure.ServiceRuntime"程序集

所以我昨天将Azure SDK更新为2.0版并升级了我的项目.一切都在本地工作得很好,所以我发布到Azure.惊喜:由于以下异常,工作者角色未启动

Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.0.0.0
Run Code Online (Sandbox Code Playgroud)

当我更新到1.8时发生了类似的事情,但我不记得确切的解决方案.我试图删除并读取程序集,引用我系统中的DLL,更新NuGet包......一切都会产生相同的结果.

任何人有任何解决方案吗?谢谢!

azure visual-studio-2012

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

数据绑定数据透视表未加载Windows Phone 8中的第一个数据透视表项

我正在将我的应用程序从WP7迁移到WP8,并且发生了一件有趣的事情.我有一个数据绑定透视在WP7中完美运行.但是,在WP8中,完全相同的代码,不会加载第一个PivotItem.我已经尝试了WP7问题中的所有解决方案,没有工作(我想要一个解决方案,而不是一个丑陋的解决方法).我在构造函数中设置DataContext,集合正常,一切都应该工作.它只在我在应用程序中滚动时加载枢轴.有人有任何解决方案?

c# xaml windows-phone-8

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

顺序访问内核驱动程序中的大页面

我正在使用使用由大页面支持的缓冲区的驱动程序,但是我发现大页面的顺序性存在一些问题。

在用户空间中,程序使用mmapsyscall 分配由大页面支持的大缓冲区。然后通过ioctl调用将该缓冲区传递给驱动程序。驱动程序使用该get_user_pages函数来获取该缓冲区的内存地址。

这非常适合1 GB(1个大页面)的缓冲区大小。get_user_pages返回很多页面(HUGE_PAGE_SIZE / PAGE_SIZE),但它们都是连续的,因此没有问题。我只是用它来抓取第一页的地址page_address并使用它。remap_pfn_range当另一个程序mmap在char设备上进行调用时,驱动程序还可以将该缓冲区映射回用户空间。

但是,当缓冲区由一个以上的大页作为后备时,事情就会变得复杂。看来内核可以返回由非顺序大页支持的缓冲区。即,如果巨大页面池的布局是这样的

+------+------+------+------+
| HP 1 | HP 2 | HP 3 | HP 4 |
+------+------+------+------+
Run Code Online (Sandbox Code Playgroud)

,可以通过保留HP1和HP4,或者可能是HP3然后是HP2来满足对支持大页的缓冲区的请求。这意味着当我get_user_pages在最后一种情况下获取具有的页面时,页面0的地址实际上是在页面262.144(下一个大页面的头部)的地址之后的1 GB。

有什么办法可以顺序访问这些页面?我尝试对地址进行重新排序以找到较低的地址,以便可以使用整个缓冲区(例如,如果内核为我提供了一个由HP3支持的缓冲区,则我将HP2用作HP2的基址),但似乎会扰乱数据在用户空间中(该重新排序的缓冲区中的偏移量0 可能在用户空间缓冲区中偏移了1GB)。

TL; DR:给定> 1个无序的大页面,是否有任何方法可以在Linux内核驱动程序中顺序访问它们?

顺便说一下,我正在使用3.8.0-29通用内核的Linux机器。

c memory linux-kernel huge-pages

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