问题列表 - 第38092页

Python语句使用过多的RAM

这个简单的陈述:

zip(xrange(0, 11614321), xrange(0, 11627964))
Run Code Online (Sandbox Code Playgroud)

......吃掉了我的大部分内存.(> 150 MiB!)为什么?

编辑:啊,重新阅读文档,我看到zip返回一个列表,而不是一个可迭代的.这样的东西zip会返回一个可迭代的吗?


更大的图片:我正在迭代两个大的文件数据数组,我正在做迭代(0-end,0-end),(0-end,1-end)等等.我喜欢不切片数组,因为它会导致过多的内存分配.我想我只是迭代索引,但这似乎不起作用,如上所述.整个代码:

def subsequence_length(data_a, data_b, loc_a, loc_b):
    length = 0
    for i_a, i_b in zip(xrange(loc_a, len(data_a)), xrange(loc_b, len(data_b))):
        if data_a[i_a] == data_b[i_b]:
            length += 1
        else:
            break
    return length
Run Code Online (Sandbox Code Playgroud)

python memory-management

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

尝试在Mac OS X中打开串行端口时,open()函数挂起(永不返回)

我遇到了一个问题,当我尝试打开一个串口时,open函数永远不会返回.它不会一直发生,如果我拔掉USB到串口适配器并将其重新插入,问题就会消失一段时间.我的代码如下所示:

fileDescriptor = open(bsdPath, O_RDWR | O_NOCTTY);
Run Code Online (Sandbox Code Playgroud)

其中bsdPath是/dev/cu.KeySerial1.我已经尝试将O_NONBLOCK选项添加到open命令,但它仍然挂起.

当然,我想了解为什么会这样.我的信念是,无论问题是什么,在指定O_NONBLOCK的情况下,即使无法打开端口,open也应该返回.如果它无法打开端口,则fileDescriptor应该为-1并且应该设置errno(我在调用open之后立即检查).当然,这不会发生.我的假设不正确吗?是否有一些已知的原因使open()永远不会返回,即使在遇到错误时指定了O_NONBLOCK?

在10.7.2上使用最新版本的Prolific PL-2303驱动程序和基于PL-2303的USB转串口适配器,我今天再次能够重现这个问题.几点说明:

  • 挂起open()呼叫时,使用command-不能中断该过程.(控制-C).
  • Running ps -avx显示进程的进程状态代码U. 我不确定这段代码是什么意思.它不会出现在ps由Google搜索找到的手册页中.ps我的机器上的手册页中没有过程状态代码列表.也许它特定于Mac(10.4+?)版本ps
  • 我注意到在第一次出现此问题之前的运行中,我调用ioctl()将端口上的选项重置回状态,然后我将其更改为在我的程序中使用挂起.我不得不杀死程序(通过Xcode的调试器).紧接着,在下一次推出该计划后,open()鸿...

macos posix serial-port

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

奇怪的错误,设置<int> :: begin()总是返回const迭代器

为什么set.begin()总是返回一个const迭代器而不是一个标准迭代器呢?

35 int test(){
36     std::set<int> myset;
37     myset.insert(2);
38     myset.insert(3);
39     int &res = *myset.begin();
40     return res;
41 }


test.cpp:39: error: invalid initialization of reference of type ‘int&’ from expression of type ‘const int’
Run Code Online (Sandbox Code Playgroud)

c++ const g++ set

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

如何从共享菜单中排除自己的应用程序?

该应用程序有一个intent过滤器,允许它通过ACTION_SEND意图出现在其他应用程序的共享菜单中.该应用程序本身也有一个使用ACTION_SEND和createChooser()的共享菜单,我的应用程序出现在列表中.由于他们已经在我的应用程序中,让他们能够分享回自己似乎很奇怪.

如果我的应用程序从我的应用程序中调用,我的应用程序是否有办法不显示在列表中?

android share menu android-intent

19
推荐指数
2
解决办法
3950
查看次数

boost ::线程和模板函数

我试图在一个单独的线程上运行模板函数,但IntelliSense(VC++ 2010 Express)一直给我错误:"错误:没有构造函数的实例"boost :: thread :: thread"匹配参数列表"如果我尝试编译我得到这个错误:"错误C2661:'boost :: thread :: thread':没有重载函数需要5个参数"

错误只发生在我添加模板后所以我确定它与它们有关但我不知道是什么.

我传递给boost :: thread的两个参数是定义为的模板函数:

template<class F> 
void perform_test(int* current, int num_tests, F func, std::vector<std::pair<int, int>>* results);
Run Code Online (Sandbox Code Playgroud)

和:

namespace Sort
{

template<class RandomAccessIterator>
void quick(RandomAccessIterator begin, RandomAccessIterator end);

} //namespace Sort
Run Code Online (Sandbox Code Playgroud)

我试着像这样调用boost :: thread:

std::vector<std::pair<int, int>> quick_results;
int current = 0, num_tests = 30;
boost::thread test_thread(perform_test, &current, num_tests, Sort::quick, &quick_results);
Run Code Online (Sandbox Code Playgroud)

multithreading templates boost boost-thread

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

PartialFunction设计效率低下吗?

这是我一段时间都想知道的事情.我看到这种模式很多:

if (pf.isDefinedAt(in)) pf(in)
Run Code Online (Sandbox Code Playgroud)

通过将其分解为两个单独的调用,在#isDefinedAt中计算的所有模式也将在#apply中进行评估.例如:

object Ex1 {
  def unapply(in: Int) : Option[String] = {
    println("Ex1")
    if (in == 1) Some("1") else None
  }
}

object Ex2 {
  def unapply(in: Int) : Option[String] = {
    println("Ex2")
    if (in == 2) Some("2") else None
  }
}

val pf : PartialFunction[Int,String] = {
  case Ex1(result) => result
  case Ex2(result) => result
}

val in = 2

if (pf.isDefinedAt(in)) pf(in)
Run Code Online (Sandbox Code Playgroud)

哪个打印

Ex1
Ex2
Ex1
Ex2
res52: Any = 2
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下,您的模式最后匹配,在调用PartialFunction时,您已经两次评估了模式/提取器.当匹配不仅仅是简单的类或列表模式匹配的自定义提取器时,这可能会变得低效(例如,如果您有一个解析XML文档并返回一些值对象的提取器)

PartialFunction#lift遭受同样的双重评估:

scala> pf.lift(2) …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala scala-2.8

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

我如何解析像geo:point的JSON?

我正在尝试使用来自last.fm的jquery解析JSON响应并获取经度和纬度值.保存这些值的JSON部分如下所示:

"location":{"geo:point":{"geo:lat":"58.409901","geo:long":"15.563306"}
Run Code Online (Sandbox Code Playgroud)

我得到的代码是这样的:

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=artist.getevents&artist=familjen&api_key=xformat=json&callback=?",
 function(data){
  $.each(data.events.event, function(i,item){
   $("#menucontent").append("<br/>"+item.title + " " + item.venue.location.geo:point.geo:lat);
        });
});
Run Code Online (Sandbox Code Playgroud)

显然,"item.venue.location.geo:point.geo:lat"这一部分不起作用.如何使用":"获取这些值?

jquery parsing json last.fm

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

在SOLR中动态创建新的核心目录

我使用solr 1.4.1构建分布式搜索引擎,但我不想只使用一个索引文件 - 我想在我的java代码中动态创建新的核心"索引"目录.

我发现以下rest api使用EXISTING核心目录(http://wiki.apache.org/solr/CoreAdmin)创建新核心.

http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&instanceDir=path_to_instance_directory&config=config_file_name.xml&schema=schem_file_name.xml&dataDir=data
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有核心目录的情况下创建新核心?有solr这样的功能吗?通过休息或在solrj-api?谢谢.

lucene distributed solr solrj

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

如何以更通用的方式使用SharedPreferences作为LocalStore?

在Android世界中崭露头角,日复一日地欢欣鼓舞;)我想分享一下常见用法的例子.

下面是关于将SharedPreferences与通用LocalStore类一起使用的示例.

创建一个由您的主要活动或任何子活动使用的公共类.

    public class LocalStore {

        private static final String TAG = "LocalStore";
        private static final String PREF_FILE_NAME = "userprefs";

        public static void clear(Context context) {
            clear(context, "unknown");
        }
        public static void clear(Context context, String caller) {
            Editor editor = 
                context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
            editor.clear();
            editor.commit();
            Log.d(TAG, "caller:"+caller + "|clear LocalStore");
        }

        public static boolean setCustomBooleanData(String key, boolean value, Context context) {
        Editor editor =
            context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE).edit();
        editor.putBoolean(key, value);

        return editor.commit(); 
    }
    public static boolean getCustomBooleanData(String key, Context context) {
        SharedPreferences …
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

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

如何从静态方法更新控件?

您好我为什么无法从静态方法访问表单上的私有控件(例如ListBox)?在这种情况下如何更新控件?

编辑1.

我的代码:

ThreadStart thrSt = new ThreadStart(GetConnected);
        Thread thr = new Thread(thrSt);
        thr.Start();
Run Code Online (Sandbox Code Playgroud)

static void GetConnected()
    {
        //update my ListBox
    }
Run Code Online (Sandbox Code Playgroud)

所以它必须是无效的,没有参数并且是静态的,对吧?

编辑2.

如果有人需要WPF中的解决方案,那么应该尝试这样:

private void GetConnected()
    {
        myListBox.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
                    new Action(() =>
                    {
                        myListBox.Items.Add("something");
                    }
                               )
                 );
    }
Run Code Online (Sandbox Code Playgroud)

.net c# controls static wpf-controls

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